MENU

【初心者向け】Excel VBAで新しいブックを作成する方法をわかりやすく解説!

A子さん

Excel VBAで「新しいブックを作成」するには?
作成したブックに自動で名前をつけて保存できる?
作成後のブックにデータを書き込む方法は?

結論:Workbooks.Addを使えば、新しいブックが1行で作成できます

VBAで新しいブックを作る処理はとてもシンプルです。
まずは以下の1行が基本形です。

Workbooks.Add

これで新しい空のブックが作成され、フォーカスがそちらに移動します。
ただし「どこに保存するか」「どう名前をつけるか」「どのタイミングで保存するか」などは別途処理が必要です。

目次

新しいブックを作成する基本コード

新しいブックを1つ作るだけなら、この1行でOKです。

Workbooks.Add

ただしこのままだと後からそのブックにアクセスできないので、変数に格納しておくのが実務では一般的です。

作成したブックを変数に格納して操作する

Sub 新しいブックを作成する()

    Dim 新ブック As Workbook
    Set 新ブック = Workbooks.Add

    MsgBox "新しいブックを作成しました!"

End Sub

このように、Set を使って変数 新ブック に代入しておけば、
あとで「保存」や「閉じる」などの操作が簡単にできます。

ブックにデータを書き込んで保存する

Sub 新しいブックにデータを書き込む()

    Dim 新ブック As Workbook
    Set 新ブック = Workbooks.Add

    ' 最初のシートにデータを入力
    新ブック.Sheets(1).Range("A1").Value = "これは自動で書かれたデータです"

    ' 名前をつけて保存
    新ブック.SaveAs Filename:="C:\Users\あなたの名前\Desktop\自動作成ブック.xlsx"

    MsgBox "保存完了しました!"

End Sub

📌 ポイント

  • ファイルパスは環境に合わせて変更してください
  • SaveAsで保存後も、ブックは開いたままです

上書き保存と名前をつけて保存(Save / SaveAs)

  • Save:すでに保存されているファイルを「上書き保存」
  • SaveAs:初めて保存するときや、別名保存したいとき

保存先やファイル名を柔軟に設定したいときは、Application.GetSaveAsFilenameを使うのもおすすめです。

応用例:既存ブックの内容を新しいブックにコピー

Sub 既存ブックの内容をコピーして新しいブックに貼り付ける()

    Dim 新ブック As Workbook
    Set 新ブック = Workbooks.Add

    ' アクティブなブックのシート1のA1:B10をコピー
    ThisWorkbook.Sheets(1).Range("A1:B10").Copy

    ' 新しいブックのシート1に貼り付け
    新ブック.Sheets(1).Range("A1").PasteSpecial xlPasteValues

    Application.CutCopyMode = False
    MsgBox "データを新しいブックにコピーしました!"

End Sub

よくあるエラーと対処法

エラー内容原因対処法
パスが見つかりません保存先のパスが存在しないデスクトップやマイドキュメントなど、確実に存在するパスを使う
オブジェクト変数が設定されていませんSetの付け忘れSet 新ブック = Workbooks.Add など必ずSetを使用
書き込みができないファイルが開きっぱなし or 読み取り専用保存前に閉じているか、上書き可能か確認する

まとめ:作成→操作→保存が基本の流れ

Excel VBAで「新しいブックを作成する」処理は、業務自動化の基本です。
以下の流れを覚えておけば、どんな業務にも応用できます。

  1. Workbooks.Add で新規作成
  2. Setで変数に代入し、扱いやすくする
  3. Range.ValueCopyで中身を操作
  4. SaveAsCloseで保存・終了
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次