K-fix Learning & Playing

基礎編


モジュールとプロシージャの作成

VBAで作成するプログラムの1単位をプロシージャと呼びます。つまり、Excelの一連の処理を1つにまとめてVBA記述したものです。プロシージャは、機能別に3種類に分かれます。

Subプロシージャ
値を返さないプログラムで、一般にボタンをクリックしたときに動作するようなプログラム作成に使用。
Functionプロシージャ
値を返すプログラムで、既存の関数以外にユーザ固有の関数を作成するプログラムに使用。
Propertyプロシージャ
独自のプロパティを作成し、オブジェクトのプロパティとして利用する。(ここでは扱いません)

プロシージャは、モジュールに保存されます。さらに、モジュールは1つのプロジェクトにまとめられて、ExcelやAccessなどのファイルに保存されます。モジュールとは、宣言やプロシージャの塊のことで、VBAのマクロを構成する要素の1つとなります。
一般的に使う標準モジュールは、コードを記述するために用意されたモジュールで、マクロ用のプロシージャなどは、すべてここに記述します。1つのプロジェクト内に、いくつもの標準モジュールを持つことができ、追加するたびに「Module1」、「Module2」と連番で名前がつけられていきます。
では、モジュールをまず作成し、その次にモジュールの中にプロシージャを作成していきましょう。


① Visual Basic Editor画面のメニューの[挿入]から[標準モジュール]を選択します。

② モジュールウィンドウが開きます。左側の[プロジェクトエクスプローラ]の画面に標準モジュールが追加されたことを確認してください。

③ モジュールウィンドウ内をクリックし、メニューの[挿入]から[プロシージャ]を選択します。

④ プロシージャの追加ダイアログボックスが表示されます。プロシージャの名前と種類を指定して、OKボタンをクリックします。

⑤ モジュールにプロシージャが挿入されます。中に簡単なコードを記述してみます。

※ Public SubとEnd Subはプロシージャの始まりと終わりを表します。その間に、内容をVBAコードで記述していきます。
ちなみに、Public(Privateの場合もある) SubからEnd Subまでをサブプロシージャともいい、1つのプロシージャとしてカウントします。

⑥ プロシージャを実行してみます。メニューの[実行]から[Sub/ユーザフォームの実行]を選択します。

class="img-fluid"

⑦ VBA記述に間違いがなければ、Excelのシート画面に戻りその結果を実行します。

※ プロシージャの実行途中に、エラーメッセージが表示され、VBAコードの一部に黄色に変化した行がある場合、文法上の間違いがあることを意味します。プログラムを修正する前に、[実行]メニューから[リセット]をクリックしてください。

-補足:モジュール名の変更-

最初、オブジェクトのモジュールの名前は、Module1、Module2などと表示されます。わかりやすい名前に変更したい場合は、プロパティウィンドウで操作を行います。

プロパティウィンドウのオブジェクト名を「sample」と記述すると、プロジェクトエクスプローラで、名前の変更が確認できます。
また、モジュールを削除したい場合は、削除したいモジュールの上で右クリックし、「(モジュール名)の解放」を選択します。

削除のためのダイアログボックスが表示されます。もし、このモジュールを他の場所に保存して、このプロジェクトから削除するのであれば、「はい」を選択し、保存場所を指定してから削除を行います。保存する必要がない場合は、「いいえ」を選択して削除を行います。