KoreDefo > お役立ち記事

提出前の Excel の見た目を VBA で整える方法

資料を開いたとき、シートごとに倍率がばらばら、カーソルが表の途中、2枚目のシートが開く……。相手にとっては小さなストレスです。全シートの見た目をボタン1つでそろえるマクロのサンプルを紹介します。

更新日:2026年10月26日

1. このマクロがやること

表示されているすべてのシートで、次のことを行います。

最後に、一番左のシートを選んだ状態で終わります。そのまま保存すれば、相手は資料の最初から読み始められます。

2. サンプルコード

Option Explicit

' 提出前の見た目をそろえる
'   各シート:標準ビュー・倍率 100%・左上までスクロール・A1 を選択
'   最後に:一番左の表示シートを選択
Sub FormatForSubmission()
    Dim ws As Worksheet, first As Worksheet

    For Each ws In ActiveWorkbook.Worksheets
        If ws.Visible = xlSheetVisible Then
            If first Is Nothing Then Set first = ws
            ws.Select                          ' シートの複数選択(グループ)も解除される
            ActiveWindow.View = xlNormalView
            ActiveWindow.Zoom = 100
            ActiveWindow.ScrollRow = 1
            ActiveWindow.ScrollColumn = 1
            ws.Range("A1").Select
        End If
    Next ws

    If Not first Is Nothing Then first.Select
    MsgBox "整えました。保存してから提出してください。", vbInformation
End Sub

3. 使い方

  1. Alt+F11 で VBA の画面を開き、「挿入」→「標準モジュール」を選んで、上のコードを貼り付けます。
  2. Excel に戻り、Alt+F8 で「FormatForSubmission」を選んで「実行」を押します。
  3. 終わったら保存します。
ポイント:提出するブックにマクロを入れたくない場合は、個人用マクロブック(PERSONAL.XLSB)に入れておくと、どのブックを開いていても実行できます。クイック アクセス ツールバーやリボンにボタンとして登録しておくと、さらに手軽です。

4. コードのポイント

5. 必要に応じて足せるコード

チームのルールに合わせて、ループの中(ws.Range("A1").Select の前)に追加できます。

やりたいこと追加するコード
絞り込みフィルターを解除If ws.FilterMode Then ws.ShowAllData
枠線(目盛線)を消すActiveWindow.DisplayGridlines = False
見出し(行番号・列番号)を表示ActiveWindow.DisplayHeadings = True

ブック全体に対して1回だけ行うものは、ループの外(MsgBox の前)に追加します。

やりたいこと追加するコード
保存するときに作成者などの個人情報を消すActiveWorkbook.RemovePersonalInformation = True
注意:フィルターの解除は、相手に見せたくない行まで表示されることがあります。解除してよい資料かどうかを確かめてから使ってください。マクロで行った変更は Ctrl+Z で元に戻せないので、実行する前に保存しておくと安心です。

毎回の確認を、ボタン1つに

マクロを使わずに済ませたい場合は、KoreDefo の「Format」ボタンで、各シートの A1 選択・左上までのスクロール・表示倍率 100%(デスクトップ版)・一番左のシートの選択をまとめて行えます。.xlsm にする必要はなく、全シートか、このシートだけかを選べます。提出前に、フィルターのかけっぱなしや作成者の名前が残っていないかのチェックもボタン1つで行えます。

30日間無料で試すチェック項目の一覧を見る