Excel VBA 全ワークシートを順にアクティブシートにする方法

  • URLをコピーしました!

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はシートの選択範囲を維持したままアクティブシートを切り替えるので、都合の良い方を採用してください。

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次