VBA 別のサブルーチンからSubを呼び出す/実行する

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

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つのメッセージボックスが表示されます。

vba run subs サブ

他のサブプロシージャから呼び出すことができるサブプロシージャの数に制限はありません。

Callステートメントを使用する

コードを読みやすくするために、プロシージャ名の前にCallステートメントを使用することもできます。 ただし、コードの実行方法や保存方法には全く影響がありません。

Sub TestRoutine() 
   Call RunRoutine1
   Call RunRoutine2 
End Sub

vba run subs call

引数付きサブプロシージャの呼び出し

引数付きでサブプロシージャを呼び出すことも可能です。

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

vba run sub parameters 引数 サブ

引数に名前を付けてサブプロシージャを呼び出す

引数に名前を付けると、サブルーチンに同じ順番で渡す必要がなくなります。

Sub TestRoutine() 
   RunRoutine1 strGreeting:="お元気ですか?", strName:="メラニー"
End Sub
Sub RunRoutine1(strName as String, strGreeting as string)  
   MsgBox strName & "さん、おはようございます" & vbCrLf & strGreeting 
End Sub

vba run sub multi parameters 複数 引数

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples