気ままに趣味旅行

面白いコト「拡がる/拡げる」

エクセルVBA 集計ファイルの作り方②

どうもhiroakiです。

先日、下記の記事を書きました。

コードの中身が分からない人のために、解説していきたいと思います。

hiroakies.hatenablog.com

 

~初心者のために~

ここでは、初心者のために分かりやすく解説していきます。

とはいうものの、私も特にプロじゃありませんので(笑)。

間違っているところや、不細工なコードになっているかと思います。というかこれから説明していきますが、結構雑に書いてます。その点はご了承ください。

また、一から説明していくので、必要でない箇所は都度飛ばし読みするなどしてご活用ください。

 

準備①標準モジュールを開きます

まず、開発タブ(表示されていない方はオプションより設定変更してください)にあるVisualBasicを開きましょう。

f:id:hiroakies4463:20200229195555j:plain

挿入タブより標準モジュールを開きます。

f:id:hiroakies4463:20200229201228j:plain

開いたら、そこにコードを書いていきます。

 

準備②名前をつけてあげましょう

マクロを作るには、まず名前を付けてあげなければいけません。

名前は、Sub半角スペース名前()で付けてあげます。

その後、エンターを押すと、End Subと勝手に表示されますが、これはsub 開く()というマクロがどこまで続くかを指定するものになります。

つまり、sub () ~ end sub までがひとつのコードなんだなとイメージを持ってください。

  1. Sub 開く()
  2. End Sub

と、いうことで。

ちなみに私は、開く()というマクロ名をつけましたが、これは変だと思います(笑)適当な性格がバレますね。

実際は、データ集計()などの名前を推奨いたします。

 

準備③コード例をコピぺしましょう

次はそこに、コード例を張り付けしてみましょう。

コードは以下のサイトより、コピペしてしてみてください。

hiroakies.hatenablog.com

実際に自分のフォルダに保存してみて、動くかどうか確認してみてください。

よろしいでしょうか。 

 

内容 Dim ~ As ~

ゆっくりやっていきますね。

まず、1から7行目まで。

  1. Sub 開く()
  2. Dim name As Range
  3. Dim name_worksheet As String
  4. Dim hanni As String
  5. Dim fn As String
  6. Dim wb As Workbook
  7. Dim n As Integer

Dim ~ As ~についてです。

ここでは変数の定義を行っています。

なんだか難しいですね(笑)

実はVBAというのは、一種のプログラミング言語です。この前提から押さえてもらわないといけません。

プログラミングには、変数と定数というものがあります。

ざっくり言うと、変数は変わるもの。定数は変わらないもの。です。

数学でやりましたね(笑)それと同じです。

少し詳しく説明すると、

Dim~ は、Dimensionは「次元」

As~は、「~として」

を意味しています。

ここでは、これから使おうとしている変数が、どういう種類のものかを【Dim 変数名 As データ型】の形式で、あらかじめ指定してあげます。これを変数の宣言と呼びます。

この記述によって、どれくらいメモリの容量を確保しないといけないか、あらかじめ決めてしまうのです。

とにかく、コード内で変数を使う場合は、初めに【Dim 変数名 As データ型】の形式で、宣言をしなければいけません。

しっかりと覚えときましょう。

 

~変数名について~

ちなみに、上のnameとかhanniとか全く適当です。つまり変数名は基本的になんでもいいです。これは、イメージとしては、ラベリングみたいなものだと思ってください。

ただ、どんなものか分かりやいような名前にした方が良いとは思います。

 

~データ型について~

今回はRangeとString、Workbook、Integerのデータ型が出てきていますね。

Rangeは範囲のこと。

Stringは文字列のこと。

Workbookはワークブックのこと。

Integerは整数のこと。

要は、

この変数には範囲を入れますよ~

この変数には文字を入れますよ~

この変数にはワークブックを入れますよ~

この変数には整数を入れますよ~

と宣言しているってことです。

 

他にも、よく使うデータ型がありますので、今後も色々と作ってみたい、という人は、いくつかこんなものがあるんだな~程度に覚えておいていただければ結構です。

詳しくは下記サイトなどを参考にしてもらえばいいです。

https://www.tipsfound.com/vba/02008

 

今回はここまで~

今回はここまでとします。

基礎的なことなので、さっと進めましたが、もっと詳しく知りたい場合は、コメントなどくだされば解説したいと思います。

次回からはコードの中身を詳しく解説していきます。

 

では。