Sub/Functionプロシージャの呼び出しについて解説 プロシージャの呼び出しには【Call】ステートメントを使用 呼び出した先の処理結果をもとの場所で使用する必要がない場合に使用、呼び出し先のプロシージャは別名「サブルーチン」 ▼処理結果▼ 呼び出した先の処理結果をもとの場所で使用する必要がある場合に使用、呼び出し先のプロシージャは別名「ユーザ定義関数」 ▼処理結果▼ 呼び出し先のプロシージャ側(ユーザ定義関数)では、親プロシージャと同じ順番で引数を記述のこと ▼処理結果▼ 名前付き引数を使用する場合には「引数名 := 値」のように記述 ▼処理結果▼
【Call】ステートメント
Callの記述は省略可能だがなるべく書いたほうがわかりやすい
呼び出す側のプロシージャは別名「親プロシージャ」
引数を複数渡す場合には、「Call(または変数) プロシージャ名 (引数1 , 引数2 , 引数3……)」のようにカンマで区切るSubプロシージャの呼び出し
▼構文▼
Call プロシージャ名 または Call プロシージャ名(引数)
▼記述例▼Sub callsSub1()
debug.Print "本日の夕食は"
call callSub2("生野菜と")
call callSub2("煮魚と")
call callSub2("おひたし")
End Sub
Sub callSub2(callStr As String)
debug.Print callStr
End Sub
Functionプロシージャの呼び出し
▼基本の構文▼
変数 = プロシージャ名() または 変数 = プロシージャ名(引数)引数が1つの場合の記述例
Sub callFun1()
Dim callStr1 As String
Dim callStr2 As String
callStr1 = callFun2()
callStr2 = callFun3("絶対に")
Debug.Print callStr1 & callStr2
End Sub
Function callFun2() As String
callFun2 = "お味噌汁は"
End Function
Function callFun3(callStr2 As String) As String
callFun3 = callStr2 & "欠かせない"
End Function
引数が2つ以上の場合の記述例
Sub callFun1()
Debug.Print callFun2("ポン酢?", 3)
End Sub
Function callFun2(callStr As String, CallNum As Long) As String
Dim i As Long
For i = 1 To CallNum
callFun2 = callFun2 & "本当に" & callStr & vbNewLine
Next i
End Function
名前付き引数の記述例
以下の例のように、受け取る側のプロシージャでは引数を記述する順番を親プロシージャと同じにする必要はないSub callFun1()
Debug.Print callFun2(id:="0001", name:="tama-shi")
End Sub
Function callFun2(name As String, id As String) As String
callFun2 = ”登録IDが” & id & "の" & name
End Function