【完全自動化】全シートのカーソルをA1にするマクロ(アドイン)

2021年4月17日

Excelファイルを上司や顧客に送るとき、カーソルをA1に揃えていませんか?

シートが1つや2つならまだしも、たくさんあるとカーソルを揃えるだけでも一苦労ですよね。
修正があれば、その度にやる必要がありますし。

そんな面倒な作業もマクロを使えば一発です。

今回は全シートのカーソルをA1にするマクロを紹介します。
このマクロを使えば、ワンクリックで全シートのカーソルをA1に直せます。

次のような人に向けた内容です。

  • 資料提出の度にカーソルの位置を揃えている
  • エクセルファイルのシート数が多くて大変
  • 仕事が多すぎるので、もっと楽なやり方が知りたい

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

Sub A1Select()
'アクティブブックの全シートでカーソルとスクロール位置をA1に合わせる

    Application.ScreenUpdating = False
    
    With ActiveWorkbook
        '現在アクティブなシートを取得
        Dim actSht As Variant: Set actSht = .ActiveSheet
    
        On Error Resume Next
        Dim sht_i As Long
        For sht_i = .Worksheets.Count To 1 Step -1
            Application.Goto Reference:=.Worksheets(sht_i).Range("A1"), Scroll:=True
        Next
    End With
    
    Application.ScreenUpdating = True
    actSht.Activate

End Sub

このマクロを実行すれば、アクティブなExcelブックのカーソルをすべてA1に動かしてくれます。

        Dim sht_i As Long
        For sht_i = .Worksheets.Count To 1 Step -1
            Application.Goto Reference:=.Worksheets(sht_i).Range("A1"), Scroll:=True
        Next

この部分がカーソルを動かす部分で、他はおまけのようなものです。

このマクロでは最後に「元々アクティブだったシート」をもう一度アクティブにしています。

    actSht.Activate

この行をコメントアウトすれば、最後に1つ目のワークシートがアクティブになるように変更することもできます。

アドイン化するともっと便利に

このマクロはアドインとして動くように工夫して作ってあります。
アドインにしておけば、マクロのない普通のExcelブックに対しても使用できます。

カーソルをA1にしたいファイルは人に渡すものなので、マクロを含んだブックだと困りますよね。
なので、アドイン化して使うことをおすすめします。

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい