これからExcelでVBAプログラミングを始めようと
Excel VBAとは?
VBAは「Visual Basic for Applications」の略でMicrosoft Office製品で利用可能なプログラミング言語です。VBAはWordやOutlookなどのOffice製品でも利用可能ですが、Excelでもっともよく使用されています。
マクロを利用するとさまざまな処理を自動化することができますが、複雑な処理をするには限界があります。VBAはプログラミング言語なので、マクロより柔軟で複雑な処理を実行できるようになります。
はじめてのVBAプログラム
はじめにVBAプログラムを記述するExcelのブックを開いておきましょう。
「開発」タブを表示する
デフォルトで開発タブ(下図参照)は表示されていません。VBAプログラムを作成する場合、開発タブを表示したほうが何かと便利なので表示させておきましょう。

開発タブは次の手順で表示することができます(Excelのバージョンによって多少手順が異なる場合があります)。
- 「ファイル」タブをクリックする。
- 左側メニューの「オプション」をクリックして「Excelのオプション」ダイアログを表示する。
- 左側メニューの「リボンのユーザー設定」をクリックする。
- メイン画面の「リボンのユーザー設定」で「メインタブ」の「開発」にチェックを入れる。
- 「OK」ボタンをクリックする。
VBE(Visual Basic Editor)を起動する
VBAプログラムはVBEで記述します。開発タブの「Visual Basic」ボタンをクリックするとVBEが起動します(Alt+F11で起動することもできる)。

標準モジュールを追加する
つぎに標準モジュールを追加します。それにはVBEのメニューから「挿入」>「標準モジュール」をクリックします。
すると追加された標準モジュール(ここではModule1という名前)が「標準モジュール」という入れ物の下に表示されます(下図の赤枠参照)。標準モジュールの名前を変更したければ、(オブジェクト名)欄に任意の名前を入力します。標準モジュールを追加するとコードウィンドウも表示されます。

VBAプログラムを追加する
コードウィンドウはVBAのコードを記述する場所です。コードウィンドウに次のVBAコードを記述してみましょう。
Sub はじめてのプログラム()
MsgBox "はじめてのVBAプログラム!"
End Sub

VBAプログラムを実行する
それではプログラムを実行してみましょう。Excelに戻って開発タブの「マクロ」ボタンをクリックします。すると「マクロ」ダイアログボックスが表示されます。「はじめてのプログラム」が選択されていることを確認して「実行」ボタンをクリックします。

プログラムを実行すると次のようなメッセージボックスが表示されます。

VBAプログラムを保存する
この時点でVBAプログラムはまだファイルに保存されていません。VBAプログラムはブックと共に保存されますのでブックをファイルに保存しましょう。保存するときは「Excel マクロ有効ブック(*.xlsm)」で保存しましょう。VBEはもう必要ないので閉じてしまっても構いません。

これでブックを閉じてしまっても、再度ブックを開けばVBAプログラムを実行することができます。
基礎知識
SubプロシージャーとFunctionプロシージャー
プロシージャーとは「手続き」という意味で、ひとまとまりの処理単位です。VBAでもっとも頻繁に使われるのがSubプロシージャーとFunctionプロシージャーです。Subプロシージャーは一連の処理を実行するだけのプロシージャですが、Functionプロシージャーは戻り値を返すことができます。
Excelから呼び出されるマクロは、VBAのSubプロシージャーとして定義します。
Subプロシージャーを定義する
Subプロシージャーは一連の処理をまとめます。Excelから呼び出されるマクロはSubプロシージャーとして定義します。定義する構文は次の通りです。
Sub プロシージャー名(引数リスト)
ここにステートメント(処理)を記述する。
End Sub
Subプロシージャーはキーワード「Sub」で始まり、その後にプロシージャー名と()を続けます。()の中には引数リストを記述します。引数リストは省略することもできます。しかし、その場合でも()を省略することはできません。そしてSubプロシージャーは、「End Sub」で終わります。プロシージャーで実行するステートメント(処理)はプロシージャーの本体としてこれらの間に記述します。
Functionプロシージャーを作成する
Functionプロシージャーは一連の処理をまとめます。Subプロシージャーとは異なり戻り値を返すことができます。Functionプロシージャーを使うには、はじめにFunctionプロシージャーを定義する必要があります。定義する構文は次の通りです。
Function プロシージャー名(引数リスト)
ここにステートメント(処理)を記述する。
プロシージャー名 = 戻り値
End Function
Functionプロシージャーはキーワード「Function」で始まり、その後にプロシージャー名と()を続けます。()の中には引数リストを記述します。引数リストは省略することもできます。しかし、その場合でも()を省略することはできません。そしてFunctionプロシージャーは、「End Function」で終わります。プロシージャーで実行するステートメント(処理)はプロシージャーの本体としてこれらの間に記述します。このプロシージャーから返す戻り値は、プロシージャ名の変数へ返す値を代入します。
Visual Basic Editor(VBE)の使い方
Visual Basic Editor(VBE)は、Excelに付属しているVBAプログラミング作成するためのアプリケーションです。
VBEを起動する
VBEを起動するには「開発」タブの「Visual Basic」をクリックします。