教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】ブックを新規作成(Add)するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

Workbooks.Add(Template)

解説

Workbooks.Addメソッドを使用すると、Excelアプリケーション内に新しいブックを追加することができます。この構文におけるTemplateは省略可能な引数であり、新しいブックを作成する際に使用するテンプレートのファイルパスを指定します。省略するとデフォルトのテンプレートが使用されます。以下にTemplateの指定方法を幾つか紹介します。

(例1)テンプレートを指定しない場合(デフォルトのテンプレートを使用)
デフォルトのテンプレートを使用して新しいブックを作成します。

Workbooks.Add

(例2)既存のファイルをテンプレートとして使用する場合
"C:\Templates\MyTemplate.xlsx"というパスにある既存のExcelファイルをテンプレートとして使用して新しいブックを作成します。

Workbooks.Add "C:\Templates\MyTemplate.xlsx"

(例3)インストールされたテンプレートを使用する場合
"MyTemplate"という名前のインストールされたテンプレートを使用して新しいブックを作成します。

Workbooks.Add "MyTemplate"

使い方

以下にAddを使ったブックを新規作成するコード例を示します。

Sub CreateNewBook()
    Dim newBook As Workbook
    ' 新しいブックを作成
    Set newBook = Workbooks.Add
    ' 新しいブックを保存
    newBook.SaveAs "C:\新しいブック.xlsx"
End Sub

上記の例では、CreateNewBookというサブルーチンを作成し、新しいブックを作成して保存する処理を行っています。newBookというWorkbookオブジェクト変数を宣言し、Set文で新しいブックを作成します。そして、SaveAsメソッドを使用して新しいブックを指定したパスに保存します。

プログラミング例

以下に、新しいブックを作成してシートにデータを書き込むプログラミング例を示します。

Sub CreateAndWriteData()
    Dim newBook As Workbook
    Dim newSheet As Worksheet
    ' 新しいブックを作成
    Set newBook = Workbooks.Add
    ' 新しいブックの最初のシートを取得
    Set newSheet = newBook.Sheets(1)
    newSheet.Range("A1").Value = "Hello"
    newSheet.Range("B1").Value = "World!"
    ' 新しいブックを保存
    newBook.SaveAs "C:\新しいブック.xlsx"
End Sub

上記の例では、CreateAndWriteDataというサブルーチンを作成し、新しいブックを作成し、最初のシートにデータを書き込んで保存する処理を行っています。newSheetというWorksheetオブジェクト変数を宣言し、newBook.Sheets(1)で新しいブックの最初のシートを取得しています。その後、RangeオブジェクトのValueプロパティを使用してセルにデータを書き込んでいます。最後に、SaveAsメソッドを使用して新しいブックを指定したパスに保存します。

まとめ

Addメソッドを使用すると、新しいブックを作成してExcelファイルを操作することができます。