Excelでシートをコピーする際、「セルの内容はコピーされたけれど、書式が崩れてしまった」「列幅や罫線が変わってしまった」という経験はありませんか?
特に見積書や請求書など、見た目が重要な帳票では、書式を崩さずにコピーすることが非常に大切です。
この記事では、Excelでシートをコピーして書式を完全に維持する方法について、基本の操作から応用テクニック、VBAによる自動化までを徹底解説します。
目次
✅ 書式をそのままコピーしたい理由
- 帳票やレポートの見た目を崩したくない
- 印刷時のレイアウトを維持したい
- フォント・色・罫線・背景色の再設定を避けたい
- 列幅や行高さ、ページ設定を毎回調整する手間をなくしたい
実務では、見た目の統一感や印刷物の整合性が重要になるため、「書式そのまま」のコピーは必須スキルです。
参考:【Excel】シート・複数シートの一括コピーをする方法
✅ 方法1:シートごとコピーする(最も確実)
- コピーしたいシートのタブを右クリック
- 「移動またはコピー」を選択
- 「コピーを作成する」にチェックを入れる
- コピー先のブックまたは新規ブックを選択してOK
この方法では、セルの値・数式・書式・列幅・ページ設定すべてがそのまま複製されます。
最も確実に「書式そのままコピー」を実現できる方法です。
✅ 方法2:Ctrl+ドラッグでコピー(同じ効果)
- コピーしたいシートタブを Ctrlキーを押しながらドラッグ
- ドラッグ先に黒い▼が表示されたらマウスを離す
右クリックメニューと同じく、書式も完全コピーされます。
キーボード+マウスの組み合わせで素早く操作できるのが利点です。
✅ 方法3:別ファイルへコピーして書式を維持
- コピー元とコピー先のファイルを同時に開く
- コピー元シートを右クリック → 「移動またはコピー」
- コピー先のブックを選択し、「コピーを作成」にチェック
この場合も書式はそのままコピーされますが、数式参照が元ファイルを指す場合があるので注意が必要です。
参考:【Excel】シートを別ファイルにコピーする方法|手順・注意点・VBA自動化まで徹底解説
✅ 方法4:シート全体を選択して貼り付け(書式付き)
「値だけでなく書式も残したいが、シートそのものを複製できない」場合は、形式を選択して貼り付けを使います。
- Ctrl+Aでシート全体を選択
- Ctrl+Cでコピー
- 貼り付け先シートで右クリック →「形式を選択して貼り付け」
- 「書式」を選択してOK
この方法では、列幅は維持されないため、別途「列幅の貼り付け」を行う必要があります。
✅ 方法5:列幅や印刷設定も完全コピーする手順
Excelの「形式を選択して貼り付け」では、列幅や印刷設定は別操作が必要です。
- 列幅を維持 → 「形式を選択して貼り付け」→「列幅」
- 印刷設定を維持 → ページレイアウトタブで手動調整、またはシートコピーで対応
■ 書式が崩れる原因と対策
原因 | 対策 |
---|---|
列幅・行高さの違い | 「列幅の貼り付け」「行高さの調整」を行う |
印刷範囲の違い | コピー後にページ設定を再確認 |
条件付き書式のリンク切れ | コピー後に条件付き書式のルールを見直す |
外部参照の残り | 「データ」タブ →「リンクの編集」で解除 |
参考:【Excel】条件付き書式の基本とは?仕組みと設定方法をわかりやすく解説【初心者向け実務活用例つき】
✅ 方法6:VBAで書式ごとコピー(自動化)
手作業では時間がかかる場合、VBAで自動化するのが効果的です。
Sub シートを完全コピー()
Dim ws As Worksheet
Dim 新ブック As Workbook
Dim 保存パス As String
Set ws = ThisWorkbook.Sheets("請求書")
ws.Copy
Set 新ブック = ActiveWorkbook
保存パス = "C:\Users\UserName\Documents\請求書_コピー.xlsx"
新ブック.SaveAs Filename:=保存パス, FileFormat:=xlOpenXMLWorkbook
新ブック.Close SaveChanges:=False
End Sub
このマクロは、罫線・背景色・フォント・列幅・印刷設定まですべてコピーします。
✅ 方法7:複数シートをまとめてコピー(VBA応用)
Sub 複数シート完全コピー()
Dim ws As Worksheet
Dim 新ブック As Workbook
Dim 保存パス As String
保存パス = "C:\Users\UserName\Documents\"
For Each ws In ThisWorkbook.Sheets
ws.Copy
Set 新ブック = ActiveWorkbook
新ブック.SaveAs 保存パス & ws.Name & "_コピー.xlsx"
新ブック.Close SaveChanges:=False
Next ws
End Sub
■ 実務での活用例
- 請求書テンプレートを顧客ごとに作成
- 月次レポートの書式統一
- 分析用ブック作成時に元データの見た目を維持
- 社内フォーマットを複数部署に配布
参考:【Excel】月単位の日付計算をする方法【月末処理・締日・請求書にも使える!】
■ まとめ:シートコピーで書式を維持するには方法選びが重要
- 完全コピーなら「シートごとコピー」が最も確実
- 部分コピーなら「形式を選択して貼り付け+列幅」
- 定期作業はVBAで自動化
- コピー後は印刷設定・条件付き書式・リンクの有無を必ず確認
正しい手順を使えば、書式崩れを防ぎ、業務の効率化と品質維持が同時に実現できます。