Excel VBAを使えば日常の業務効率を飛躍的に向上させることが出来ます。
しかし、初めての方がExcel VBAでマクロを書こうとすると、
- 「どこに書けば良いのか?」
- 「どの様に書いたら良いのか?」
など分からない事が多く出てきて、先に進めない事があります。
上記の問題に対してこの記事では、Excel VBAの基本的な書き方を次の3ステップでシンプルに解説します。
また「Subプロシージャ」や「MsgBox関数」など専門用語・関数についても出てきますが最初から全てを完璧に覚える必要はありません。
まずはこの記事で基本的な一連の流れをつかんで下さい。
- VBEを使ってVBAのコードを書くことが出来る様になる
- VBAのコードを書く基本的な流れが分かる
※本記事ではWIndows10、MicrosoftOffice365の環境で解説します。
VBE(Visual Basic Editor)を開く
最初に新規でExcelを立ち上げます。
VBAのエディタ(VBE)を起動する
Excelを立ち上げたら、ショートカットキーAlt+F11でVBEを起動します。
VBE内に標準モジュールを挿入し、コードを書く
標準モジュールの挿入
新規ファイルはマクロを書く為の「標準モジュール」が初期状態では無いため、これを挿入させます。
VBEのメニューにある「挿入」⇒「標準モジュール」を順にクリックします。
標準モジュール「Module1」が挿入されコードウィンドウが表示されるので、ここにマクロを書いていきます。
Subプロシージャを書く
次に挿入された標準モジュール「Module1」にマクロを書いていきます。
今回は「はじめてのExcel VBA」とメッセージを表示させる簡単なマクロ「test」を作成していきます。
下記のマクロをコードウィンドウに作成していきます。
Sub test()
MsgBox "はじめてのExcel VBA"
End Sub
標準モジュールを挿入後、コードウィンドウに「sub test」と書きます。なおsubとtestの間には半角スペースが入ります。
Enterキーを押すと以下の様に先頭のsubの「s」が大文字に、マクロ名の後ろには()がつき、下部には「End sub」が自動的に入力されます。
上記の様な「Sub マクロ名()」~「End sub」の一括りの構造を「Sub プロシージャ」と言い、この構造内に実行する処理のコードを書いていきます。
ここでは、Subプロシージャは「マクロを1つの機能にまとめたもの」として覚えていてください。
次に実際に実行するコードをSubプロシージャ内に書きます。
今回は「はじめてのExcel VBA」とメッセージを表示する為にMsgBox関数を用いて下記の様に書いて下さい。
このダブルクォーテーション(“)で囲まれた内容がメッセージとして表示されます。
また、Subプロシージャ内にVBAコードを書く際には、Tabキーでインデント(字下げ)を行ってから入力します。
以上で実行すると「はじめてのExcel VBA」とメッセージを表示するマクロ「test」の完成です。
このインデントは何故入れるんですか?
簡単に言うとコードが「どの範囲でどの様な処理を行っているか」を分かり易くする為にインデントを使っています。
特に長いコードを書いた場合など全体の構造や流れが分かり辛くなるので、適切にインデントを使用する事で改修する際や他の開発者がコードを読む際に理解の助けとなってくれます。
ファイルの保存
マクロが作成出来たら保存をします。ショートカットキーCtrl+Sで保存します。
保存方法は通常のExcelファイルと同じですが、ファイルの拡張子を変更し保存する必要があります。
通常は「.xlsx」で保存ですが、今回はマクロ付きのExcelファイルとして保存するので拡張子を「.xlsm」に変更して保存をします。
VBAのコードを実行する
マクロを保存したら次に実行して動作を確認します。マクロの実行にはいくつか方法がありますが、今回はVBE上でショートカットキーF5を押してマクロを実行させます。
カーソルを実行したいマクロ(今回はtest)のSubプロシージャ内に移動後、ショートカットキーF5を押しマクロを実行します。
カーソルが置いてある場所のマクロが、F5を押した時に実行されます。
ショートカットキーF5を押すと下記のように「はじめてのExcel VBA」というメッセージが表示され、マクロ「test」が実行された事が分かります。
解説は以上で終了です。
今回はExcel VBAでマクロを書いて動かす一連の流れについて解説を行いました。
初心者のうちは、新しい用語や書き方に圧倒されることもあると思いますが、最初から全てを覚えようと気負う必要はありません。
VBAを含むプログラミング言語はコードをどんどん書いていく事で、理解が深まっていき最初は分からなかった内容も次第に理解出来る様になっていきます。
このブログでは今後も今回のような初心者の方が安心して学べる内容から、実務で役立つ処理まで幅広く解説を行っていきますので参考にして色んなコードを書く事に挑戦してみて下さい。