プロシージャを記述するには Visual Basic Editor(VBE)を起動する必要があります。VBEの起動の仕方がわからない場合はさきほどのリンク先からVBEの起動方法を学習してください。
準備ができたらプロシージャを記述してみましょう。
Sub プロシージャ構文
すべての処理はこのSubプロシージャから始まります。 Subプロシージャを作成するには標準モジュールなどのコードウィンドウを開いて以下のように記述します。
プロシージャ名には半角英数字やアンダースコアのほかに日本語(全角)も指定することができます。 但し、プロシージャ名の先頭に数字とアンダースコアを指定することはできません。
Subプロシージャ記述の流れ
標準モジュールの追加
※標準モジュールが既に追加済みの場合、このステップは飛ばしてください。
VBE画面のメニュー 挿入 から 標準モジュール を選択します。
標準モジュールの名前変更
必要に応じて標準モジュールの名前を変更します。名称変更したい標準モジュールが選択されていることを確認してから、 プロパティウィンドウのオブジェクト名を変更します。 新しいオブジェクト名を入力したら Enter キーを押下します。
するとプロジェクトエクスプローラ上のモジュール名も変更されます。 今後のサンプルマクロはこのモジュールに追加していくようにします。 この”sample用”モジュールをダブルクリック (または 右クリック ⇒ コード表示 )し、コードウィンドウを開きます。
コードウィンドウにプロシージャを記述
コードウィンドウにプロシージャ名まで入力したらEnterキーを押下します。
すると、VBEには補完機能がありますので、カッコと”End Sub”が自動的に入力されます。
ここでは例として、Subプロシージャ内にメッセージボックスを表示するコードを記述します。
最後まで入力してから、カーソル位置を変えると”M”と”B”が自動的に大文字になります。
これは”MsgBox”という組み込み関数が元々存在するため、”msgbox”は”MsgBox”のことだと判断されたためです。
マクロを実行してメッセージボックスが表示されることを確認します。
Function プロシージャ構文
記述の仕方は基本的にSubプロシージャと同じです。ただ、Functionプロシージャは戻り値を設定することができるので、 その戻り値のデータ型を指定する必要があります。データ型を省略した場合はバリアント型となります。
戻り値とはプロシージャ内で処理した結果、呼び出し元へ戻す値のことです。呼び出し元はこの値を使用してさまざまな処理を行うことができます。
また、Functionプロシージャにはその処理構造上何かしらの引数を指定することになると思います。 (引数を指定しなくてもエラーにはなりません)
引数のあるFunctionプロシージャ(およびSubプロシージャ)はこれ単体では実行することはできませんので、 必ず他のプロシージャから呼び出して使用することになります。