【Excel VBA】ExcelのセルをA1戻すマクロ

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

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

そこで、本記事ではすべてのシートのカーソルをA1に戻すマクロを紹介します。

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

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

マクロのソースコードは以下になります。

全シートでカーソルを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

メモ

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

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

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

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

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

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

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

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

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

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

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

ただ、いちいち開発タブからマクロを実行するのは面倒なので、もっと簡単にマクロを実行できるようにしたいですよね。

個人的には、Excelを保存するときに全てのシートのカーソルがA1に戻ってくれると、戻し忘れがなくなるため良いと思っています。そこで、保存したときに上記で作ったマクロを実行する方法を紹介します。

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に選択されていれば完了です!

マクロを別の方法で呼び出す

「保存する時にいつもA1に戻るのは困る…けど楽にマクロを呼び出したい」という方には、他に以下2つの方法がありますので参照ください。

ツールバーにマクロを設定する

【Excel】画面上のボタン(ツールバー)をカスタマイズする方法

ボタンを表示してマクロを設定する

【Excel マクロ】マクロを実行するボタンを表示する方法