- エクセルのマクロ? VBA?
というもので仕事を効率化させることが出来るかもしれないと聞いたものの、何から手を付ければいいか分かりません・・・。 - マクロが役に立つらしいと聞いたので、ちょっと勉強してみたい。でも、私のエクセルにはそんな機能見あたらないし・・・どうすればいいの?
こんな疑問を解決します!
具体的には知識ゼロから、
- VBAを書くためのExcelの基本設定を終わらせ、
- 最も基本的なプログラムである、Hello Worldという文字列をExcelのセルに入力するプログラムを書いて、
- 実際にプログラムを動かすところまでやります。
ちなみにマクロと言うのは、Excelを自動で動かすExcelの機能自体を指す用語で
VBAと言うのは、どのようにExcelを自動で動かすかをプログラミングする
プログラミング言語の名前です。
この記事を読むことで、
あなたがVBAを書いてプログラムを実行するための最低限の土台が完成します。
VBAをはじめるための基本設定
さっそく、VBAでプログラミングをするためのエクセルの基本設定を解説していきます。
大きな流れは下記のようになります。
- ファイルをマクロ有効ブックとして保存する
- 開発タブを表示する
- VBEを立ち上げて標準モジュールを挿入する
ファイルをマクロ有効ブックとして保存する
まず、マクロは通常の拡張子(.xlsx)のエクセルファイルには保存できないので、
拡張子(.xlsm)のマクロ有効ブックというファイルに変更する必要があります。
手順は下記のようになります。
エクセルを起動して、[ファイル] > [名前を付けて保存] へ進む
▼[ファイル]をクリックします。
▼[名前を付けて保存]をクリックします。
[ファイルの種類]を[Excel マクロ有効BOOK]に変更して保存する
▼[ファイルの種類]のところをクリックします。
▼[Excel マクロ有効ブック(*.xlsm)]を選択して、保存する。
これで拡張子が.xlsmのマクロ有効ブックが完成し、
VBA書いたプログラムを保存できるようになりました。
ファイル名は必要に応じて変更してください。
開発タブを表示する
次に、VBAを書くための[開発]というタブを表示する設定をします。
デフォルトでは非表示になっているタブなので、表示設定する必要があります。
[ファイル] > [オプション]へ進む
▼[ファイル]をクリックします。
▼左下の方にスクロールすると[オプション]があるのでクリックします。
[リボンのユーザー設定] > [開発]にチェックを入れて[OK]
▼[リボンのユーザー設定]より、[メインタブ]の[開発]にチェック入れてOKをクリックします。
▼[開発]が表示されれば成功です。
VBEを立ち上げて標準モジュールを挿入する
[開発]タブの表示まで来れば、あと一息です。
ここからは実際にVBAを書くためのVBEというエディタを立ち上げて、プログラムを書くための下準備をしていきます。
[開発]タブ > [Visual Basic]へ進み、VBEを立ち上げる
▼[開発]タブ > [Visual Basic]をクリックします。
[挿入] > [標準モジュール]へ進み、[Module1]を挿入する
▼下記がVBE(VBAを書くためのエディタ)です。[挿入] > [標準モジュール]をクリックします。
▼下記に[Module1]が表示されれば成功です。
[Module1]が表示されると右側に、文字を入力できるエリアが表示されます。
※表示されない場合は[Module1]をダブルクリックして下さい。
このエリアがModule1の中身で、まだ何も書かれていませんが、
これからここにVBAを書いていきます。いよいよですね!
ちなみにこの画像では、文字を入力できるエリアが黒いですが、
これは設定で変えているので、皆さんは白いエリアが表示されると思います。
自分も黒背景がいい! という方はこちらを参考に設定してみて下さい。
セルにHello Worldを入力する手順
ここからは実際にVBAを使ってプログラミングをしていきます。
目標はExcelシートのセルにHello Worldという文字列を入力すること。
大まかな手順は下記のようになります。
- Sub~End Subを入力
- Cells(行, 列).Value = “Hello World”を入力
- マクロを実行
Sub~End Subを入力
[Module1]の中に、実際に動作するプログラムを書くためには、
一番初めに必ずSub~End Subというコードを入力する必要があります。
さっそく開始しましょう。
[Module1]の中身に
Sub main()
と書いてEnterキーを押してください。
すると、
End Sub
が自動入力されて下記のようになります。
簡単ですね。
VBAでは一番初めに、必ずこの
Sub main() End Sub
というプログラムを書いて、
それ以降のプログラムはこのSub main()とEnd subの間に書いていきます。
こうすることで、このSub main()とEnd Subに挟まれたプログラム群は
mainという名前のひと塊のプログラムとして扱うことが出来るようになります。
ちなみにmainというのは、必ずmainという名前である必要はなく
ある程度は自由に自分で決めることが出来ます。
※Sub~End Subに関しても、用途に応じて他に数種類有りますが、ここでは割愛します。
Cells(行, 列).Value = “Hello World”を入力
次に、先ほど入力したSub main()とEnd subの間に
Cells(行, 列).Value = “Hello World”というコードを書きます。
Sub main() Cells(2, 2).Value = "Hello World" End Sub
これは、
Cells(2, 2).Value
2行目かつ2列目のセルの値に
= "Hello World"
“Hello World”を入力する。
という意味になります。
Cells(行, 列)に関しては、今回は2行目かつ2列目のセルなのでCells(2, 2)ですが、
例えば、
1行目かつ3列目のセルであれば、Cells(1, 3)
5行目かつ2列目のセルであれば、Cells(5, 2)
のように書きます。
マクロを実行
ここまでで、2行目かつ2列目のセルにHello Worldを入力するプログラムが完成しました。
後は実行して、実際にHello Worldが入力されるか確認しましょう!
VBA実行の手順は下記になります。
[開発]タブ > [マクロ]へ進み[main]マクロを実行する
▼[開発]タブ > [マクロ]をクリックする
▼[main]マクロが選択されていることを確認し、[実行]をクリックする。
▼[B2セル]=[2行目かつ2列目のセル]にHello Worldが出力されました!
最後に
いかがだったでしょうか!
これが、エクセルのマクロを使って、自動でHello Worldをセルに入力するまでの全手順になります。
今回は文字列をセルに入力するだけの簡単なプログラムでしたが、
今後、Sub main()とEnd Subの間に書くプログラムの内容によって
色々なExcelの動作を自動化することが出来るようになります。
今回はその記念すべき第一歩を踏み出すための手順を紹介させていただきました。
以上です!
コメント