
Excel VBAのプロシージャとは、処理単位の一つ
処理を実行する時に一連の処理を一つの手順としてまとめたコードの集まりで
- Functionプロシージャ
- Subプロシージャ
の2種類がある
< スポンサーリンク >
Functionプロシージャ
処理を実行し値を返します
Function プロシージャ名(引数 As データ型) As 戻り値のデータ型
ステートメント(命令文)
プロシージャ名 = 戻り値
End Function
Function プロシージャ名(引数 As データ型) As 戻り値のデータ型 の部分から始まり
End Function で一連の処理が終了します
Subプロシージャ
処理を実行するだけで値は返しません
Sub プロシージャ名(引数 As データ型)
ステートメント(命令文)
End Sub
Sub プロシージャ名(引数 As データ型) の部分から始まり
End Sub で一連の処理が終了します
ステートメントとは?
ステートメントとは命令文のことです
1行での記述が基本ですが、改行するときは _ (アンダーバー)を使用します
★改行例
msg = MsgBox(“メッセージを右寄せで表示”, vbYesNoCancel + vbQuestion + _
vbDefaultButton3 + vbSystemModal + vbMsgBoxRight, “MSGタイトル”)
メモ
一つのプロシージャの中にいくつもステートメントを記述することが多いです
一つのプロシージャにすべての機能を長々とコードを記述することもできますが、機能別に一つのプロシージャとしてまとめておくと、何度もコードを記述する必要がなくなります
それに、別のプロシージャから呼び出したりといった使い回しも出来て便利ですし、あとから修正するときも簡単にできます
Functionプロシージャ使用例
下記のようなプロシージャがあったとします
Sub 会員情報()
会員情報を会員データから取得するステートメント
会員の年齢を計算するステートメント
会員情報と年齢をSheetに表示するステートメント
End Sub
年齢を計算させるような処理はよく使うので、年齢計算用のプロシージャを作っておくと、会員情報プロシージャからも使えるし、他のプロシージャからも使えるので、あちこちから使い回しができます
Sub 会員情報()
会員情報を会員データから取得するステートメント
年齢 = 年齢計算(会員の生年月日)
会員情報と年齢をSheetに表示するステートメント
End Sub
Function 年齢計算(生年月日)
年齢計算 = 生年月日から年齢を計算するステートメント
End Function
変数について知りたい場合
プロシージャの中で使う変数について知りたい場合はこちらの記事もご覧ください。
Excel VBAの変数とは データを一時的に格納するための名前をつけたメモリ上の場所! 箱のようなものをイメージするとわかりやすいかもしれないですね。 変数の名前の文字は ・英数字 ・漢字 ・ひらがな ・カタカナ ・ア …
まとめ
プロシージャにはFunctionプロシージャとSubプロシージャの2種類があります。値を返すかどうかで使い分け、機能ごとに分けておくと再利用や修正がしやすくなります。
こんな記事も書いています

