例えば、マクロ記録機能を使い、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
マクロを分割して作成しておくと、各マクロの実行順序が変わった場合にも変更が簡単です。
また、他のマクロに共通して利用できる場合もあり便利です。