Excelを使っていると、作成したシートを別のファイルにコピーして再利用したい場面が頻繁にあります。たとえば、取引先ごとに請求書テンプレートを複製する場合や、既存データを基に別ファイルで加工・分析したい場合などです。
この記事では、Excelの「シートを別ファイルにコピーする」方法について、基本的な手順からショートカット操作、数式リンクの扱い、複数シート同時コピー、VBAによる自動化まで、実務に役立つテクニックを詳しく解説します。
目次
✅ シートコピーが必要になるケース
- テンプレートの再利用:毎月の報告書や請求書を既存フォーマットから作成
- データ加工用の複製:元データを保持しつつ、別ファイルで加工
- 顧客ごとの帳票出力:同じ書式を複数の顧客に展開
- 別部署への共有:必要なシートだけを別ファイルにして渡す
参考:【Excel】シート・複数シートの一括コピーをする方法
✅ 方法1:ドラッグ&ドロップでコピー
- コピー元ファイルとコピー先ファイルを同時に開く
- コピーしたいシートのタブを右クリックし「移動またはコピー」を選択
または Ctrlキーを押しながらドラッグ - コピー先のブックを選択
- 「コピーを作成する」にチェックを入れてOK
ポイント
- Ctrl+ドラッグで別ブックに直接コピーできる
- 色付きタブやシート名もそのまま反映される
✅ 方法2:右クリックメニューからコピー
- コピーしたいシートのタブを右クリック
- 「移動またはコピー」を選択
- 「ブック名」欄からコピー先ファイルを選択
- 「コピーを作成する」にチェックを入れてOK
この方法は、複数シートの一括コピーにも対応しています。
✅ 方法3:複数シートをまとめてコピー
- Ctrlキーを押しながらコピーしたい複数のシートタブをクリック
- 右クリック →「移動またはコピー」
- 別ファイルを選択し「コピーを作成」にチェック
複数選択の際は、シート名の重複に注意が必要です。重複があるとExcelが自動的に「(2)」などを付けます。
✅ 方法4:別名保存でシートだけを残す
- コピー元ファイルを開き、不要なシートを削除
- 「名前を付けて保存」で新しいファイルとして保存
シート数が多く、コピー対象が限られている場合に有効です。
✅ 方法5:コピー時の数式リンクに注意
別ファイルにシートをコピーすると、元ファイルへのリンクが残ることがあります。
例:元ファイル「売上.xlsx」の数式がコピー後も ='[売上.xlsx]Sheet1'!A1
のように残るケース。
対処法
- コピー後に[数式] → [リンクの編集]からリンクを解除
- または「形式を選択して貼り付け → 値」に変換してリンクを切る
✅ 方法6:書式や列幅をそのまま保つコツ
- ドラッグや「移動またはコピー」では書式は自動的にコピーされます
- 列幅だけ維持したい場合は
「形式を選択して貼り付け → 列幅」を利用
✅ 方法7:VBAでシートを別ファイルに自動コピー
大量のファイル作成や定期的なコピー作業はVBAで自動化できます。
Sub シートを別ファイルにコピー()
Dim wb As Workbook
Dim ws As Worksheet
Dim 新ブック As Workbook
Dim 保存パス As String
Set wb = ThisWorkbook
Set ws = wb.Sheets("請求書")
' コピーして新しいブック作成
ws.Copy
Set 新ブック = ActiveWorkbook
' 保存パス設定
保存パス = "C:\Users\UserName\Documents\請求書コピー.xlsx"
' 新ブック保存
新ブック.SaveAs Filename:=保存パス, FileFormat:=xlOpenXMLWorkbook
新ブック.Close SaveChanges:=False
MsgBox "コピーが完了しました"
End Sub
・このマクロの特徴
- 指定シートを単独でコピーし、新ファイルとして保存
- 元ブックの影響を受けない独立したファイルになる
✅ 方法8:複数シートを自動で別ファイルに保存(VBA応用)
Sub 複数シートを個別ファイルに保存()
Dim ws As Worksheet
Dim 保存パス As String
保存パス = "C:\Users\UserName\Documents\"
For Each ws In ThisWorkbook.Sheets
ws.Copy
ActiveWorkbook.SaveAs 保存パス & ws.Name & ".xlsx"
ActiveWorkbook.Close SaveChanges:=False
Next ws
End Sub
これで全シートを自動的に別ファイルとして保存できます。
■ 実務で役立つ応用例
- 月別シートの一括分割保存
営業成績や売上表を月ごとのファイルに自動分割 - 顧客ごとの請求書自動生成
顧客リストをループし、請求書シートを別名保存 - 外部共有用データ作成
機密シートを除いたファイルを自動で生成
参考:【Excel】月単位の日付計算をする方法【月末処理・締日・請求書にも使える!】
■ よくあるトラブルと解決策
トラブル | 原因 | 解決策 |
---|---|---|
コピー先で数式が壊れる | 元ファイル参照リンクが残っている | 値貼り付けまたはリンク解除 |
マクロが消える | .xlsx 形式で保存 | .xlsm 形式で保存する |
シート名が重複 | 同名シートが存在 | 自動リネームまたは事前に名称変更 |
書式が崩れる | 列幅や印刷設定が異なる | コピー後に「列幅の貼り付け」や「ページ設定」確認 |
■ まとめ:シートの別ファイルコピーは状況に応じた方法選びが重要
- 少量・単発作業 → Ctrl+ドラッグや「移動またはコピー」
- 複数シートまとめて → 複数選択して一括コピー
- 大量・定期作業 → VBAマクロで自動化
- リンク残り防止 → コピー後は必ずリンク解除や値貼り付け
正しい方法を選べば、作業効率は大幅に向上し、ミスも減らせます。