プロシージャ引数

プロシージャには引数を設定することが可能です。 引数とはプロシージャに受け渡すデータのことで、 この引数をプロシージャ内でうまく利用することにより柔軟かつ高度な処理を行うことが可能となります。

スポンサーリンク

プロシージャ引数の構文

プロシージャに引数を設定するには、プロシージャ名後ろのカッコ内に引数名とそのデータ型を指定します。

構文
Sub [プロシージャ名]([引数名] as [データ型])
   :
(処理を記述)
   :
End Sub

また、引数はカンマで区切ることで60個まで設定することが可能です。

構文
Sub [プロシージャ名]([引数名1] as [データ型], [引数名2] as [データ型], …)
   :
(処理を記述)
   :
End Sub

Functionプロシージャの引数の設定方法についてはSubプロシージャと全く同じです。

構文
Function [プロシージャ名]([引数名] as [データ型])
   :
(処理を記述)
   :
End Sub
構文
Function [プロシージャ名]([引数名1] as [データ型], [引数名2] as [データ型], …)
   :
(処理を記述)
   :
End 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回目が引数ありプロシージャを引数を変えて実行結果になります。

引数なしプロシージャの実行結果
引数なしプロシージャの実行結果
引数ありプロシージャの実行結果①
引数ありプロシージャの実行結果①
引数ありプロシージャの実行結果②
引数ありプロシージャの実行結果②
タイトルとURLをコピーしました