bizvba_160
例えば、マクロ記録機能を使い、3つのマクロ Macro1, Macro2, Macro3 を作ったとします。

これを実行するのに、Macro1を実行して、次に、Macro2を実行して、Macro3を実行して・・・とやる必要はありません。

ここでは、複数のマクロを続けて実行するマクロを作ります。
 

とっても簡単なマクロですが、後に、様々な処理のマクロを組み合わせて作成する為の基本となります。

例として、下に Macro1, Macro2, Macro3 の3つのマクロがあります。コピーして貼り付けだけのマクロです。

Sub Macro1()
    Range("D4").Select
    Selection.Copy
    Range("E4").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub


Sub Macro2()
    Range("D4").Select
    Selection.Copy
    Range("E5:F5").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub


Sub Macro3()
    Range("D6").Select
    Selection.Copy
    Range("E6:G6").Select
    ActiveSheet.Paste
    Selection.Font.Bold = True
End Sub

これを実行するのに、Macro1を実行して、次に、Macro2を実行して、Macro3を実行して・・・とやる必要はありません。

次のように、Macro名を自由に決めて、Sub マクロ名() ~ End Sub の間に、続けて実行したいマクロ名を Call してあげます。ここでは、「Macroの統合」というマクロ名にしました。

Sub Macroの統合()
    Call Macro1
    Call Macro2
    Call Macro3
End Sub

「Macroの統合」マクロを実行すれば、Macro1, Macro2, Macro3 が続けて実行されます。簡単ですね。

Call は次のように省略できますが、Call が付いている事で、他のマクロを呼び出していることが視覚的に分かりやすくなりますし、他のマクロを呼び出している箇所を 「Call」をキーワードに検索する事もできるようになりますので、省略しない方が良いです。

Sub Macroの統合()
    Macro1
    Macro2
    Macro3
End Sub

マクロを分割して作成しておくと、各マクロの実行順序が変わった場合にも変更が簡単です。
また、他のマクロに共通して利用できる場合もあり便利です。