シーゴの Excel 研究室

タイトル変更しました (旧称:今日を乗り切るExcel研究所)

Excel シートの体裁を統一したい

シート間でシートの体裁・レイアウトの書式をコピーする手順とそのマクロを検討します。

Excel 文書のレイアウトが微妙にずれる

Excel で定型文書を作成するときなど、決まった体裁のマスター(ひな形)となるシートをコピーして追加作成することはよくあります。

同じ体裁のはずなのに、文書編集中に書式を勝手に変更する人がいて、たとえばフォントサイズを変更したために行がずれ、印刷してから余分な白い紙 が出てから分かったりします。

またマスターシートの体裁に変更が入ったら、実文書シートにも統一的に反映させたいところです。

手作業でシート内の全書式を統一する

「形式を選択して貼り付け」で「書式」のみを貼り付ける事で可能です。

マスターとなるシートを全体コピーして、別シートで「形式を選択して貼り付け」で「書式」を選択し、書式のみを貼り付けると、シート全体の書式を一致させることができます。

書式のみの貼り付けは、罫線などセルの書式、フォントや位置合わせのテキストの書式、日付など数式の書式、行幅と列の高さ、結合セル、条件付き書式など、すべての書式が適用されますが、値や数式といったセルの内容には影響を与えません。

全体コピーせずに一部セル範囲だけを書式貼り付けした場合、行の幅と列の高さは反映されません。 必ずシート全体をコピーしてください。

書式のみ貼り付けのアクセスキーはCtrl + Alt + VTになります

【手順例1】キーボード操作

  1. シートのセル全体を選択し、コピーします
    • キー操作: Ctrl + A (⇒ Ctrl + A) ⇒ Ctrl + C
      Ctrl +A1回で全選択にならない場合はもう一回実行します
  2. 体裁をそろえたいシートを開いて A1 セルを選択し、書式設定のみ貼り付けます
    • キー操作: Ctrl + HomeCtrl + Alt + VTEnter
  3. 別のシートで同操作を繰り返します
    • キー操作: Ctrl + PageUp/PageDownCtrl + HomeAlt + Enter

マウス操作の方が速いかもしれません

【手順例2】マウス操作

  1. シートのセル全体を選択します
    • シートの左上隅の三角マークをクリックします
      f:id:shego:20210207133237p:plain
  2. 書式をコピーします
    • 「書式のコピー/貼り付け」をクリックします
      f:id:shego:20210207134125p:plain
      • 1回だけ張り付けたいなら1回クリックします
      • 複数シートへ連続で貼り付けたいならダブルクリックします
  3. マウスカーソルがハケになります。
  4. 体裁をそろえたいシートを開いて 書式設定のみ貼り付けます
    • シートの左上隅の三角マークをクリックします
  5. 別のシートを開き操作を繰り返します(ダブルクリックした場合)
    • シートの左上隅の三角マークをクリックします
    • 貼り付けモードを終了するには Esc キーを押します

複数シートを一括して揃えることはできないようです。

他の Excel ファイルに貼り付けることもできます。

 



複数シートにレイアウト書式をコピーするマクロ

通常は上記操作で十分だとは思いますが、やはり複数シートをそろえる場合、一括で処理したいです。

複数シートの書式を一括で処理するマクロを作成しました。

複数シートを選択後、このマクロ VBA を実行すると、表示されている(アクティブな)シートをマスターとして、その全書式を残りのシートに適用します。

取り消しはできませんので、注意してください。

Sub シートの書式を統一()
    If ActiveWindow.SelectedSheets.Count = 1 Then Beep: Exit Sub
    If ActiveSheet.Type <> xlWorksheet Then Beep: Exit Sub
    
    ActiveWindow.SelectedSheets.FillAcrossSheets ActiveSheet.Cells, Type:=xlFillWithFormats
    ActiveSheet.Select
End Sub

ちなみに、セルの結合があるシートの書式を張り付けた場合、貼り付け先にのそのセル範囲の複数のセルに値があっても警告なしで結合されてしまいますが、その値は失われず結合セルの裏に残っている状態になっています。 そのセル結合を解除すれば値は取り戻せます。

【使い方】

  1. 新規標準モジュールに上記 VBA プログラムをコピー&ペーストします
  2. 書式の元となるシートを選択します
  3. 書式を貼り付けたいシートを複数選択します
    • Ctrl キーを押しながら、対象シートのタブをクリックして選択
  4. 上記マクロを実行します
  5. 全ての対象シートの体裁が統一されています。
    • マクロ実行後は複数シート選択が解除されています

【注意】 本操作は「元に戻す」(Undo)ことはできません。

まとめ

シート全体の書式をコピーすることで、体裁を統一することができました。

これで、印刷でずれるのも防ぐことができて安心です。

本当は、書式を変更できないよう固定できればいいのですが、Excel にそのような機能はないようです。

本記事の内容は、Windows 10 の Excel 2013 で動作確認をしました。