【VBA】テンプレートを基にしたブックの作成

Excel VBAでは、Workbooks.Add メソッドに テンプレートファイル(.xltx、.xltm、.xlt) を指定することで、テンプレートを基に新しいブックを作成できます。
定型レイアウトや書式を再利用したい場合に非常に便利です。

本記事では、テンプレートを利用したブックの作成方法を解説します。


1. テンプレートを指定してブックを作成

テンプレートファイルのパスを引数として Workbooks.Add に渡すと、そのテンプレートを基にブックが作成されます。

Sub CreateBookFromTemplate()
Dim wb As Workbook
Set wb = Workbooks.Add(ThisWorkbook.Path & "\Template.xltx")

wb.Sheets(1).Range("A1").Value = "テンプレートから作成しました"
End Sub

ポイント:

  • ThisWorkbook.Path は、現在のマクロブックが保存されているフォルダパスを返します。
  • テンプレートファイルは フルパスで指定する必要があります。

2. Excel標準テンプレートを使用する

Excelに標準で用意されているテンプレートも Workbooks.Add で利用可能です。

Sub CreateBookWithStandardTemplate()
Dim wb As Workbook
Set wb = Workbooks.Add(Template:="Chart.xltx") 'グラフ用テンプレート
End Sub

補足
標準テンプレートは Excel のインストールフォルダ内に保存されているため、名前だけで指定できる場合があります。


3. テンプレートから複数ブックを作成する

同じテンプレートを基に複数の新しいブックを作る例です。

Sub CreateMultipleBooksFromTemplate()
Dim i As Long
Dim wb As Workbook
For i = 1 To 3
Set wb = Workbooks.Add(ThisWorkbook.Path & "\Template.xltx")
wb.SaveAs ThisWorkbook.Path & "\Report_" & i & ".xlsx"
Next i
End Sub

4. テンプレート利用時の注意点

  • テンプレートファイルは、必ず読み取り専用で開かれるため、上書きされる心配はありません。
  • .xltm テンプレートを使う場合は、マクロを含んだまま新規ブックが作成されます。
  • テンプレートのパス指定ミスは 実行時エラー1004 を引き起こすため、事前に Dir 関数で存在確認すると安全です。

5. まとめ

  • Workbooks.Add "テンプレートのパス" でテンプレートから新規ブックを作成できる
  • 複数ブックを一括で作る場合も同じ仕組みで繰り返し処理可能
  • パス指定のミスを防ぐために事前チェックを推奨

コメント

タイトルとURLをコピーしました