プロシージャには引数を設定することが可能です。 引数とはプロシージャに受け渡すデータのことで、 この引数をプロシージャ内でうまく利用することにより柔軟かつ高度な処理を行うことが可能となります。
プロシージャ引数の構文
プロシージャに引数を設定するには、プロシージャ名後ろのカッコ内に引数名とそのデータ型を指定します。
また、引数はカンマで区切ることで60個まで設定することが可能です。
Functionプロシージャの引数の設定方法についてはSubプロシージャと全く同じです。
プロシージャをラーメンを作る作業に例えると引数はラーメンの味やトッピングなどに例えることができます。
味やトッピングが指定できない場合、1種類のラーメンしかつくることができません。しかし、味やトッピングが指定可能であれば、さまざまなバリエーションのラーメンを作ることができるようになります。
プロシージャについても引数を指定可能にすることで処理にバリエーションをもたせることができることを覚えておきましょう。
引数あり・なしプロシージャサンプル
次のサンプルを標準モジュールに貼り付け、sample_eb017_01 を実行してみましょう。
Sub sample_eb017_01()
'引数なしプロシージャの処理結果をメッセージボックスで表示
MsgBox "[ラーメン作成1]" & vbLf & ラーメン作成1
'引数ありプロシージャの処理結果をメッセージボックスで表示
MsgBox "[ラーメン作成2]" & vbLf & ラーメン作成2("塩", "")
MsgBox "[ラーメン作成2]" & vbLf & ラーメン作成2("みそ", "味玉")
End Sub
'引数なしプロシージャ
Function ラーメン作成1() As String
ラーメン作成1 = "しょうゆラーメン"
End Function
'引数ありプロシージャ
Function ラーメン作成2(味 As String, トッピング As String) As String
If トッピング = "" Then
'トッピングがない場合
ラーメン作成2 = 味 & "ラーメン"
Else
'トッピングがある場合
ラーメン作成2 = 味 & "ラーメン(" & トッピング & "付)"
End If
End Function
上記サンプルの実行するとメッセージダイアログが3回でてきます。
1回目は引数なしプロシージャの実行結果、2回目と3回目が引数ありプロシージャを引数を変えて実行結果になります。