【エクセルVBA】全シートでA1セルを選択した状態にするマクロ

あらかじめ、全てのシートでA1セルを選択した状態にする方法を紹介します。


ソースコード

標準モジュールに下記ソースコードをコピペします。

Sub MoveToCellA1_AllSheet()
  Dim WB As Workbook
  Set WB = ActiveWorkbook
  
  Dim WS As Worksheet
  For Each WS In WB.Worksheets
    WS.Activate
    WS.Cells(1, 1).Select
  Next
  
  WB.Worksheets(1).Activate
End Sub

概要

上記マクロを実行すると、次のような状態になります。

  • 現在アクティブになっているブックについて、全シートA1セルが選択される
  • しかも、1枚目のシートが選択される

解説

Activeworkbookの情報を変数に格納

  Dim WB As Workbook
  Set WB = ActiveWorkbook

プロシージャの中で、何回も「Activeworkbook」を参照してしまうと、万一、マクロ実行中に別ブックが選択されたときに、マクロの動きがおかしくなってしまいます。

そこで、あらかじめ、プロシージャの先頭で、現在開いているワークブック(Activeworkbook)を「変数WB」に代入しています。

全ワークシートでA1セルを選択

  Dim WS As Worksheet
  For Each WS In WB.Worksheets
    WS.Activate
    WS.Cells(1, 1).Select
  Next

For Eachループで、変数WB(=Activeworkbook)の全ワークシートについて、次の処理を行います。

  • シートの表示(=WS.Activate)
  • A1セルを選択(=WS.Cells(1, 1).Select)

1枚目のシートを選択

  WB.Worksheets(1).Activate

最後に、1枚目のシートを選択します。

実行したときの動画

※下記を再生しても音は出ませんので、音が出せない環境でもご安心ください。