新しいブックの作成は Workbooks.Add と記述すればよいのですが この記述だと オプションの "新しいブックのシート数" で
設定されている分だけシートが用意されたブックが作成されてしまいます
Application.SheetsInNewWorkbook = 1
とオプションの設定値を変更してから ブックを作成する方法もありますが 処理後に設定値を元の状態に戻しておかないと
設定値が変更されたままになってしまうという問題があります
下記のように 引数の Template に xlWBATWorksheet を設定すれば シート 1 つだけのブックが作成できます
ただし 通常であれば保存する前のブック名が Book1 であるのに対し この方法で作成すると Sheet1 となります
Workbooks.Add Template:=xlWBATWorksheet
開いたブックを ActiveWorkBook と記述しなくてもいいように WorkBook オブジェクトにセットしておくと便利です
Set o_book = Workbooks.Add(Template:=xlWBATWorksheet)
基本的にブックに対する処理よりも シートに対する処理が多いので ブックでなくシートを取得した方が効率がよいでしょう
ブックに対して処理を行う場合には Parent プロパティを利用します
Set o_sheet = Workbooks.Add(Template:=xlWBATWorksheet).Worksheets(1) o_sheet.Parent.Close
また Template を省略すれば "新しいブックのシート数" で設定されたシート数を持つ新しいブックが作成され
Template にファイル名を指定すれば 指定したファイルをテンプレートとして新しいブックが作成されます