【VBAリファレンス|実務向け】[VBA実務講座] ファイル操作の基本!新規ブックの作成と保存を自動化しよう

スポンサーリンク

1. 導入:なぜVBAでファイルを操作するのか

実務において、「毎日特定のフォーマットで報告書を作成する」「月次集計の結果を別ファイルに保存して配布する」といった作業は、手作業で行うと非常に手間がかかります。VBAでファイルを操作する技術を身につければ、こうした定型業務を一瞬で完了させることが可能です。今回は、VBAによる「新規ブックの作成」と「保存」という、ファイル操作の第一歩を解説します。

2. 基礎知識:ブックを操作するオブジェクト

Excel VBAには、ブックを操作するための Workbook オブジェクトが存在します。
・Workbooks.Add:新しいブックを作成するためのメソッドです。
・Workbook.SaveAs:作成したブックに名前を付けて保存するためのメソッドです。

これらの命令を使いこなすことで、Excelのメニューを操作することなく、コードだけでファイルの生成から保存までを完結させることができます。

3. 実装と解決策:ファイル操作の流れ

VBAでファイル操作を行う際は、以下の流れを意識しましょう。

1. 新しいブックを作成する。
2. 作成したブックを「変数」として保持しておく(操作対象を明確にするため)。
3. 指定したパス(保存先)に名前を付けて保存する。

特に「変数」への代入は重要です。複数のブックを同時に開く場合、どのブックを操作しているのかをプログラムに指示する必要があるためです。

4. サンプルプログラム

以下のコードは、新規ブックを作成し、デスクトップに「売上集計.xlsx」として保存する実務的な例です。

Sub CreateAndSaveNewWorkbook()
‘ 新規ブックを操作するための変数宣言
Dim wbNew As Workbook
Dim savePath As String

‘ 新規ブックを作成し、変数にセット
Set wbNew = Workbooks.Add

‘ 保存先のパスを指定(例:デスクトップ)
‘ ※環境に合わせて書き換えてください
savePath = CreateObject(“WScript.Shell”).SpecialFolders(“Desktop”) & “\売上集計.xlsx”

‘ ブックを保存(ファイル形式をExcelブックに指定)
‘ Application.DisplayAlerts = False で上書き確認メッセージを非表示にする
Application.DisplayAlerts = False
wbNew.SaveAs Filename:=savePath, FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True

‘ 完了メッセージ
MsgBox “ファイルを保存しました:” & vbCrLf & savePath
End Sub

5. 応用・注意点

・上書き保存の警告回避:既に同じ名前のファイルが存在する場合、Excelは警告メッセージを出します。プログラムを止めたくない場合は、サンプルコードのように Application.DisplayAlerts = False を使い、一時的に警告をオフにするのが現場の定石です。
・ファイル形式の指定:SaveAsメソッドを使う際は、FileFormat引数を指定することをおすすめします。これにより、マクロを含まない通常のブック形式(.xlsx)として正しく保存されます。
・保存先の指定:パスを直接書き込むのではなく、上記例のようにシステム環境からデスクトップ等のパスを自動取得するようにしておくと、他のPCに配布した際もエラーが起きにくくなります。

タイトルとURLをコピーしました