【Excel VBA】Excelを保存するときにセルをA1選択にする

Excel VBA 保存したときにセルをA1に戻すマクロ

会社で仕事をしている時に、Excelを開いたらセルがA1を選択していてほしいという要望がありました。

そこで、Excelを保存するときに、すべてのシートのカーソルをA1に戻すマクロを作成しました。

作成までの手順は以下になります。

おおまかな手順

  • 全てのシートのカーソルをA1に戻すマクロを作る
  • Excelで保存したときにイベントを発動し、上のマクロを呼び出す

VBAでマクロを作るための準備

Module1を追加する

標準モジュールにModule1を追加します。

【VBAProjectを右クリック】→ 【挿入】 → 【標準モジュール】をクリックします。

そもそもこの画面なに?という方は、以下の記事でVBAを書き始める準備の方法をまとめているのでご覧ください。

Excel VBA マクロの作り方【Excel VBA】Excelマクロの始め方 ~簡単なサンプル付き~

Excel VBA: 全てのシートのカーソルをA1に戻すマクロ

1. VBAのソースコードを書く

Module1を追加したら、以下のソースコードをコピぺしましょう。

全シートでカーソルをA1に戻す

copy

' 全てのワークシートのセルをA1に戻すマクロ
Public Sub SelectCellA1()
    
    Dim ws As Worksheet
    
    ' 全てのワークシートに対して処理を繰り返す
    For Each ws In Worksheets
        
        ' ワークシートをアクティブにしないと、A1をSelectするときにエラーになる
        ws.Activate
        ws.Range("A1").Select
    
    Next
    
    ' 最後に1シート目をアクティブにする
    Worksheets(1).Activate

End Sub

Module1にソースコードをコピーしたら、以下のような感じになっていると思います。

メモ

ソースコードの先頭に書いてある、Publicってなに?という方は、以下のサイトがわかりやすいので参考にしてみてください。

>>「Public Sub」「Private Sub」って?

2. マクロを動かすための準備

それでは、マクロの動作を確認するための準備をします。

準備をするといっても、マクロを作成したExcelにシートを追加して、カーソルを適当な位置に移動しておくだけで完了です!

3. 全てのワークシートのセルがA1に戻ることを確認する

それでは、マクロを実行しましょう。

キーボードの【F5】を押す、または画面上部の【▶】を押して、マクロを実行します。

Excelに戻って、全てのシートのカーソルの位置を確認してみてください。

セルのカーソルがA1になっていると思います。

Excelを保存するときにイベントを発動させる

次に、Excelを保存するときに、上記で作ったマクロが実行されるようにします。

1. ThisWorkbookモジュールを開く

プロジェクトの中にある、【ThisWorkbook】をダブルクリックしましょう。

ThisWorkbookをダブルクリックする

2. 保存する前に発動するイベントを書く

次に、(General)と書いてあるプルダウンをクリックして、【Workbook】を選択しましょう。

GeneralからWorkbookをクリック

【Workbook】を選択すると、以下のようにWorkbook_Openが勝手に書かれますが、とりあえず無視してください。

右側のプルダウンをクリックして、【BeforeSave】を選択しましょう。

BeforeSaveをクリック

すると、Workbook_BeforeSaveが自動的に書かれます。

このなかに処理を書くと、保存する前に処理が自動的に実行されるようになります。

また、今回はWorkbook_Open()は不要なので消しておきます(以下の図では消去済み)。

3. ソースコードを書く

Workbook_BeforeSaveの中で、上記で作成したカーソルをA1に戻すマクロを呼び出しましょう。

【Call メソッド名】で処理を呼び出すことが出来ます。

保存したときにセルをA1に戻す

copy

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Call SelectCellA1

End Sub

4. Excelを保存して、処理を確かめる

ここまで完了したら、マクロが正しく動くことを確認しましょう。

上記と同じように、シートを追加して、カーソルを移動しておきます。

そして、今度はExcelを保存したときに、全てのシートのセルがA1に選択されていれば完了です!