VBA開発

ExcelVBA「ウインドウ枠の固定状態でも、セルA1を表示させる」

顧客先へ成果物としてエクセルを提出する際、
セルA1を選択状態で納品するのは気配りのきいたものだと考えます。

下記の記事では、全てのシートのセルA1を選択するマクロです。
ウインドウ枠を固定していると、セルA1は選択状態ですが、
画面表示はセルA1ではなく、マクロ実行した画面位置を指したままです。

ウインドウ枠固定してもセルA1を表示させる

Public Sub sample_vba_cell_a1_select()
    '■スクロール列を一番左にする
    ActiveWindow.ScrollColumn = 1
    '■スクロール行の一番上にする
    ActiveWindow.ScrollRow = 1
    '■セルA1選択状態にする
    ActiveSheet.Cells(1, 1).Select
End Sub

ScrollColumn、ScrollRow をそれぞれ1に設定する事で、
アクティブウィンドウのスクロールポイントを(左上のシート上の位置=A1セル)を指定します。

 

ActiveブックのすべてのシートのセルをA1選択状態の改良

ウインドウ枠の固定を加味した全てのシートのA1を選択(Select)状態、表示倍率を100%にする処理をパーツ化する【エクセルマクロ】の記事を改良したコードは以下です。

'■ActiveブックのすべてのシートのセルをA1選択状態にする。倍率を100%にする。
Public Sub Call_SelectA1_Zoom100()
    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Visible = True Then
            ws.Activate

            ActiveWindow.ScrollColumn = 1
            ActiveWindow.ScrollRow = 1
            ws.Cells(1, 1).Select

            ActiveWindow.Zoom = 100
        End If
    Next ws
    
    If Worksheets(1).Visible = True Then Worksheets(1).Activate
End Sub

ワークシートが非表示の場合は、エラーが起きるため、ワークシートが表示されている(Visible=True)シートのみ処理を走らせています。

使い方

上記をお好きなモジュール内にコピペしてください。
実際に使用する時は以下のような形で使用してください。

Sub test()
   ’■提出前にこのコードを実行して体裁を整える
   Call_SelectA1_Zoom100 
End Sub

コメント

タイトルとURLをコピーしました