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

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

Excelを保存するときに、すべてのシートのカーソルをA1に戻すマクロのサンプルです。

 

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

おおまかな手順

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

 

Excelマクロの始め方が分からないという方は、以下の記事を参考にしてください。

Excel VBA マクロの作り方 【Excel VBA】Excelマクロの作り方

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

1. Module1を追加する

まずは、Excelマクロの作り方を参考にして、標準モジュールにModule1を追加しましょう。

Excel VBA マクロの作り方 【Excel VBA】Excelマクロの作り方

 

2. ソースコードを書く

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」って?

 

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

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

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

 

4. 全てのワークシートのセルが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に選択されていれば完了です!