VBA ワークブックを新規作成する

はじめに

Excel VBA マクロでワークブックを新規作成する方法を紹介します。

Workbooks.Add メソッドから、ブックを新規作成できます。

シートの種類やファイルをテンプレートとして作成できます。

ブックを保存するには「ワークブックを保存する」をご覧ください。
  • 目次
    • ブックを作成する
    • 作成したブックを編集する

ブックを作成する

新しいブックを作成するには Workbooks.Add を入力します。

Dim wb As Workbook
Set wb = Workbooks.Add ' ブックを作成
Debug.Print(wb.Name)
3

作成したブックがアクティブになります。シートの数は Excel のオプションから全般の「ブックのシート数」です。Application.SheetsInNewWorkbook で取得または設定ができます。

4

テンプレートを指定

シートの種類か既存のファイルをテンプレートとして引数で指定できます。引数を指定すると、そのシートが 1 枚追加された状態でブックが作成されます。

シートの種類には次のものがあります。

定数名 説明
xlWBATWorksheet-4167ワークシート
xlWBATChart-4109グラフシート
xlWBATExcel4MacroSheet3Excel4マクロシート
xlWBATExcel4IntlMacroSheet4Excel4インターナショナルマクロシート
Call Workbooks.Add(xlWBATWorksheet) ' ブックにワークシートを追加して作成
Call Workbooks.Add(xlWBATChart)     ' ブックにグラフシートを追加して作成

既存のファイルをテンプレートにするには、そのパスまたはファイル名を指定します。

' ファイルをテンプレートとして作成
Call Workbooks.Add("D:\Tips.xlsx")
Call Workbooks.Add("ローカル.xlsx")

指定したファイルと同じブック名の連番 ブック名1 と、同じシートを持ったブックが作成されます。

ファイル名だけ指定したときは、カレントディレクトリにあるファイルをテンプレートにします。カレントディレクトリの既定値は、Excel のオプションから保存の「既定のローカルファイルの保存場所」です。

default-path
カレントディレクトリは、ファイルを開くダイアログや名前を付けて保存ダイアログを使用すると変更されます。このため必ず絶対パスを使用します。

作成したブックを編集する

Add の戻り値から作成したブックを取得できます。

Dim wb As Workbook
Set wb = Workbooks.Add ' 戻り値から作成したブックを取得

' そのブックに対して編集
wb.Worksheets(1).Range("A1").Value = "編集"
wb.Close

ブック名を変更するには保存時や閉じるときにできます。

ブックを保存するには「ワークブックを保存する」をご覧ください。
ブックを閉じるには「ワークブックを閉じる」をご覧ください。