VBA 別のサブルーチンからSubを呼び出す/実行する
Last updated on 4月 22, 2022
このチュートリアルでは、VBAで他のサブプロシージャの中からサブプロシージャを呼び出す方法について説明します。 繰り返し使用できるコードを書いて、プロジェクト内の複数のサブプロシージャから呼び出すと、非常に便利です。膨大な時間を節約でき、VBAコードをはるかに効率的にします。
サブプロシージャを他のサブプロシージャから実行する
以下の3つのサブプロシージャを考えてみましょう。
Sub TestRoutine()
RunRoutine1
RunRoutine2
End Sub
Sub RunRoutine1()
MsgBox "おはようございます"
End Sub
Sub RunRoutine2()
MsgBox "今日の日付は " & Format(Date, "yyyy/mm/dd") & " です"
End Sub
Sub Procedure – TestRoutine – を実行すると、RunRoutine1 と RunRoutine2 が呼び出され、2つのメッセージボックスが表示されます。
他のサブプロシージャから呼び出すことができるサブプロシージャの数に制限はありません。
Callステートメントを使用する
コードを読みやすくするために、プロシージャ名の前にCallステートメントを使用することもできます。 ただし、コードの実行方法や保存方法には全く影響がありません。
Sub TestRoutine()
Call RunRoutine1
Call RunRoutine2
End Sub
引数付きサブプロシージャの呼び出し
引数付きでサブプロシージャを呼び出すことも可能です。
Sub TestRoutine()
RunRoutine1 ("メラニー")
RunRoutine2 ("よい一日を!")
End Sub
Sub RunRoutine1(strName as String)
MsgBox strName & "さん、おはようございます"
End Sub
Sub RunRoutine2(strMessage as String )
MsgBox "本日の日付は " & Format(Date, "yyyy/mm/dd") & " です" & VbCrLf & strMessage
End Sub
引数に名前を付けてサブプロシージャを呼び出す
引数に名前を付けると、サブルーチンに同じ順番で渡す必要がなくなります。
Sub TestRoutine()
RunRoutine1 strGreeting:="お元気ですか?", strName:="メラニー"
End Sub
Sub RunRoutine1(strName as String, strGreeting as string)
MsgBox strName & "さん、おはようございます" & vbCrLf & strGreeting
End Sub