- 公開日:
エクセルで同じ表を繰り返し作成する方法
エクセルを使った表の作成は、日常的に必要とされる作業の一つです。しかし、同じ表を何度も作成する場合、手作業で毎回入力するのは手間がかかります。
そんな時に便利なのが、エクセルの機能を使って繰り返し同じ表を作成する方法です。
この記事では、エクセルの機能を活用して、効率的に同じ表を繰り返し作成する方法を解説します。
エクセルで同じ表を繰り返し作成する方法
シートをコピーする
表があるシートをそのまま複製することで、同じ表を繰り返し作成できます。
以下の記事では、同じシートを複数作成する方法について丁寧に解説しています。
シートが増えても良い場合は、こちらの方法がもっとも簡単かと思います。
表の書式をコピーする
表のレイアウトが気に入っており、表の中身は変えたいという場合は、書式のみをコピーする方法が有効です。
表の書式のみをコピーして、同じ表を作成する方法については以下の通りです。

①繰り返し使用したい表を選択し、②「ホーム」タブ、③「書式のコピー/貼り付け」の順に選択します。

表を貼り付けたいセル(例:B10)を選択します。

表の書式のみが貼り付けられ、繰り返し使えるようになりました。
VBA(マクロ)で自動的に同じ表を作成する
手作業でコピーするのではなく、同じ表の作成を自動化させたい場合は、VBA(マクロ)を使用する方法がおすすめです。
VBAといっても難しい操作はなく、コピー&ペーストの簡単な操作で完了します。
VBAを利用するには「開発」タブを表示させる必要がありますので、以下の記事を参考に表示させてください。
詳しい方法については、以下の通りです。

ここでは、「表の書式のみを新しいシートにコピーする」操作をVBAで自動化させてみます。
同じ表のレイアウトを簡単に別のシートに移したい場合の参考にしてください。

①「開発」タブ、②「Visual Basic」の順に選択します。

「Microsoft Visual Basic for Applications」が起動します。
①「挿入」タブ、②「標準モジュール」の順に選択します。

①モジュールに、以下のコードを貼り付けます。
Sub 同じ表を作成()
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
Dim sourceRange As Range
Dim targetRange As Range
Dim newSheetName As String
' コピー元のシートを設定
Set sourceSheet = ThisWorkbook.Sheets("Sheet1")
' 新しいシートを追加
Set targetSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
newSheetName = "CopiedFormatSheet"
targetSheet.Name = newSheetName
' コピー元の範囲を設定
Set sourceRange = sourceSheet.Range("B2:F8")
' コピー先の範囲を設定
Set targetRange = targetSheet.Range("B2:F8")
' コピー元の範囲の書式をコピーして、コピー先の範囲に貼り付け
sourceRange.Copy
targetRange.PasteSpecial Paste:=xlPasteFormats
' クリップボードをクリア
Application.CutCopyMode = False
End Sub
一部、作業環境によって変更する箇所があります。
コメントを参考に変更を加えても良いですが、特に変更する必要のある3つの箇所を説明します。
「ThisWorkbook.Sheets("Sheet1")」で、コピー元の表があるシート(例:Sheet1)を指定します。
「sourceSheet.Range("B2:F8")」で、コピー元の表の範囲(例:B2:F8)を指定します。
「targetSheet.Range("B2:F8")」で、コピー先の範囲を指定します。
②貼り付けとコードの変更ができたら、「Sub/ユーザーフォームの実行」を選択します。

実行すると、「CopiedFormatSheet」という新しいシートが作られ、表の書式のみがコピーされました。
これで同じ表を繰り返し使うことが楽になるはずです。活用してみてください。