1つマクロを作ったら、全ワークシートに対して実行したいということがあります。その方法はアクティブシートを切り替えるだけでOKです。
目次
アクティブシートの切り替え方
以下、シートの最初から最後まで、アクティブシートを順に切り替えるサンプルコードです。
Function AllSheet()
Application.ScreenUpdating = False '画面チラチラ抑制
Dim cnt As Integer
For cnt = 1 To Sheets.Count 'Sheet1から最終シートまで
Sheets(cnt).Select 'ActiveSheet切り替え
Call subRoutine()
Next
Application.ScreenUpdating = True '画面チラチラ抑制解除
End Function
コードの解説
Function AllSheet()
関数の始まり
Application.ScreenUpdating = False
アクティブシートを切り替えていくと画面がチラチラ動くので、それを抑制します。
Dim cnt As Integer
全シートループするためのカウンター
For cnt = 1 To Sheets.Count
最初のシートから最後のシートまでループ。Sheets.Countはブックにあるシートの数です。
Sheets(cnt).Select
cnt番目のシートをアクティブにします。
Call subRoutine()
切り替えたシートで実行したいマクロを記述します。
ここではサブルーチンをコールしてます。
Next
次のシートへ
Application.ScreenUpdating = True
画面チラチラの抑制を解除します。
End Function
関数の終わり
他の手段
Sheets(cnt).Select は、Worksheets(1).Select に変更することができます。 Worksheets はグラフシートやモジュールシートは取得しないので、都合の良い方を採用してください。
また、Sheets(cnt).Select は、Worksheets(1).Activateに変更することができます。Activateはシートの選択範囲を維持したままアクティブシートを切り替えるので、都合の良い方を採用してください。