エクセルVBAでプログラミングをする時の、その最小単位となるのが「プロシージャ」と呼ばれるものです。
基本的には
Sub プロシージャ名()
で始まり
End Sub
で終わります。
プロシージャには、原則、ひとつの機能を実装します。
それらの組み合わせで一つのプログラムを構成するのです。
サブルーティン化
あるプロシージャから、別のプロシージャを呼びだすことができます。
これを”サブルーチン化”といいます。
プロシージャで用いる「Sub」とは”Subroutine”のことをいいます。
呼び出すときには「Call」ステートメントを用います。
「Call」ステートメントは省略することもできますが、変数名などと混同してしまうため、なるべく使用するようにした方がよいでしょう。
例1
サブルーティンs_macro_Msgはメッセージボックスに「呼ばれました!!」と表示するだけのプロシージャです。これをボタンを押したら呼び出すには、こうします。
Private Sub CommandButton1_Click()
Call s_macro_Msg
End Sub
Sub s_macro_Msg()
MsgBox "呼ばれました!!"
End Sub
ボタンを押したときに動作するプロシージャをイベントプロシージャといいます。
Functionプロシージャ
上記のSubプロシージャは、機能を実行したらそれで終了します。実行した結果をどうこうするわけではありません。それに対し、実行結果を呼び出し元に渡すプロシージャをFunctionプロシージャといいます。
Functionプロシージャは
Function プロシージャ名(引数 As データ型) As データ型
'処理
プロシージャ名 = 戻り値
End Function
となります。
”戻り値”とは、呼び出し元に返す値のことです。
変数の宣言に少し似た構文ですが、Fuctionプロシージャは値を返すため、その値のデータ型を指定する必要があります。
実践ファイル
Functionプロシージャ.xls
最終更新:2010年09月12日 16:23