トップページ > ソフトウェアの操作 > Excel でマクロを書くために必要な基本形とマクロの保存

Excel でマクロを書くために必要な基本形とマクロの保存


[初回公開] 2016年07月21日

Microsoft 社の Excel でマクロを開発するためには VBA によるプログラムが必要となり、VBA を記述する上で必ず守るべき基本形と VBA を記述したマクロ付きの Excel を保存する方法について紹介する。

Excel のマクロを記述に必要なもの

Excel にマクロを記述して保存するためにはモジュールと呼ばれる器を用意する必要があり、Excel のワークシートごとに表やグラフが用途別に利用するようにマクロも用途に応じてモジュールに実行させたい内容を記述する。
モジュールには「標準モジュール」と「クラスモジュール」の2通りあり、マクロを記述する前にまずはこのモジュールを Excel 内に用意する必要がある。

マクロを記述する入力欄を表示する

VBE より標準モジュールを選択する

Excel にマクロの記述がない初期状態からマクロを追加するためにはまず Excel の上部メニューから「開発 -> Visual Basic」を選択して VBエディタ(Visual Basic Editor)を開き、VBE の上部メニューより「挿入 -> 標準モジュール」を選択する。
上部メニューに「開発」が無い場合は「ファイル -> オプション -> リボンのユーザ設定」よりタブ「開発」が上部メニューに表示されるように設定を行う。
VBE の画面で標準モジュールが作成されると、左部のプロジェクト欄のツリー階層の中に標準モジュールが追加される。

標準モジュールのマクロ入力欄を開く

左部のプロジェクト欄のツリー階層の中にある標準モジュールのさらに下の階層には Module1 があり、その Module1 をダブルクリックすると画面の右部にマクロを記述する入力欄が表示され、以降はこの入力欄にマクロを記述していく。

マクロの基本形を記述する

Module1 で開いた入力欄には下記のマクロを記述する

Option Explicit
Sub Sample_Macro()
End Sub

一行目の Option Explicit はプログラム内で利用する変数名や型を必ず記述するとルール化(宣言)させるもので、ルール化することで宣言されていない変数名をプログラム内に書くと実行時にエラーとして処理を中断するため誤操作やバグ発見の効率化につながる。
尚、Option Explicit を省略することもでき、その際は宣言していない変数名があっても処理は実行される。

二行目の Sub 〇〇() はプロシージャと呼ばれるマクロの名称を示しており、このプロシージャの下に実行させたい処理を記述していく。
〇〇の箇所は任意で決めることができ、ここでは Sample_macro としている
ここで決めたプロシージャの文字列がマクロ実行時に表示するマクロの名称となり、実際に Excel でマクロを実行する場合は下図のように表示される。

マクロ実行時のプロシージャの表示

最後に End Sub は Sub から始まる一連のプロシージャの内容が終了することを示している。
これら三行がマクロを記述するために必要な基本形となる。
この状態でマクロを実行できる状態にはあるば、プロシージャ内には具体的な処理内容をまだ記述していないため、マクロを実行しても何も変化が無い状態となる。

マクロを保存する

マクロを記述した後は xlsm で保存する

VBE でマクロを記述したのちに保存しようとしても通常の Excel の拡張子 xlsx はマクロを保存できる拡張子になっていないため、通常とは異なる拡張子でマクロ付きの Excel を保存する必要がある。
マクロ付きの Excel を保存するためには上部メニューより「ファイル -> 名前を付けて保存」よりファイル名を「Excel マクロ有効ブック(*.xlsm)」を選択して保存する。

関連記事