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

VBAで
 ・全シートでA1セルを選択した状態
にできます!
※非表示シートも対象。

ついでに
 ・一番左上にスクロールされた状態
 ・表示倍率を100%
にします!

PR

VBAコード

ここでは例として、
 ・全シートでA1セルを選択した状態
にします。
※非表示シートも対象。
※ついでに「一番左上にスクロールされた状態」にします。また「表示倍率を100%」にします。

Option Explicit

Sub sample()
    
    Dim ws As Worksheet
   
    'シートの数だけ繰り返し
    For Each ws In ThisWorkbook.Worksheets
        '処理中のシートをアクティブにする
        ws.Activate
        'セル「A1」を選択状態にする
        ws.Range("A1").Select
        'スクロールを一番左上、表示倍率を100%にする
        With ActiveWindow
            .ScrollRow = 1
            .ScrollColumn = 1
            .Zoom = 100
        End With
    Next
    
    '先頭シートをアクティブにする
    Worksheets(1).Activate

End Sub

シートの数だけ繰り返し処理をします(8~19行目)。
※非表示シートも対象になります。

「Worksheetオブジェクト」の「Range」プロパティで、「Rangeオブジェクト」を取得します(12行目)。

「Rangeオブジェクト」の「Select」メソッドで、A1セルを選択した状態にします(12行目)。

PR

実行結果

全シートでA1セルを選択した状態にできました。
※非表示シートもA1セルを選択した状態になりました。

普通に実行した場合は問題無く動作しますが、デバック実行だと非表示シートの処理中に以下のエラーが発生します。
※少なくとも私の環境においては。

PR

参考①

上記のVBAコードは以下の記事を参考にして作成しました。

●シートの数だけ繰り返し処理を行う

PR

参考②

自分でプログラムを書かずとも、Excelアドイン「RelaxTools」により全シートでA1セルを選択した状態にできます。

Excelアドイン「RelaxTools」の全シートでA1セルを選択した状態にする機能
Excelアドイン「RelaxTools」の全シートでA1セルを選択した状態にする機能


詳細は公式サイトのマニュアルをご確認ください。




Excelアドイン「RelaxTools」に関する記事も作成しています。あわせてご確認ください。


PR

参考③

上記のコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Worksheetオブジェクト」の「Range」プロパティ


●「Rangeオブジェクト」の「Select」メソッド