方法 : プロシージャに引数を名前で渡す
更新 : 2007 年 11 月
Sub または Function プロシージャを呼び出す場合、対応するパラメータの、プロシージャの定義における順序に関係なく、引数を名前渡しできます。
引数を名前渡しすると、プロシージャ呼び出し内で引数値に意味を持たせることができるので、呼び出し元のコードが読みやすくなります。プロシージャに省略可能なパラメータがある場合、名前渡しすることで、どの引数を渡し、どの引数を省略しているのかを確認しやすくなります。
引数の名前渡しの規則と制限については、「位置と名前による引数渡し」を参照してください。
引数を名前で渡すには
プロシージャの宣言のソース コードで、パラメータ名の正確な綴りを確認します。
呼び出し元のコードで、通常どおりにプロシージャ呼び出しを準備し、プロシージャ名に続いてかっこで囲んだ引数リストを指定します。
名前渡しするすべての引数に対して、宣言されたパラメータ名、コロンと等号 (:=)、引数に渡す値の順で指定します。
名前で指定する引数の順序は自由ですが、位置で指定する引数はすべて、名前で指定する引数の前に指定する必要があります。
使用例
次の例では、3 つのパラメータを持つ Sub プロシージャと、これらのパラメータに引数を名前渡しする Call ステートメント (Visual Basic) を示します。
Sub studentInfo(ByVal name As String, _
Optional ByVal age As Short = 0, _
Optional ByVal birth As Date = #1/1/2000#)
Debug.WriteLine("Name = " & name & _
"; age = " & CStr(age) & _
"; birth date = " & CStr(birth))
End Sub
Call studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")
引数を名前で渡す場合、プロシージャでの宣言時と同じ順序で指定する必要はありません。
コードのコンパイル方法
引数リスト内のパラメータ名が、プロシージャで宣言されたものと完全に一致していることを確認してください。