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