こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。
皆さんは、VBAでブックを保存する方法を知っていますか?更新したデータを上書き保存したいとき、新しく名前を付けて保存したいときなどブックを保存したいケースはよくありますよね。
そこで今回は、
- ブックを保存する方法とは
といった基礎的なことから、
といった応用的な方法まで、徹底的に解説します!
VBAでブックを保存する方法
はじめに、ブックを保存する方法について解説します。ブックを保存する方法は2つあるので、それぞれ解説しますね。
上書き保存する方法
まずは、ブックを上書きする方法について解説します。Saveメソッドを使って次のように書くことで、簡単にファイルを上書き保存することができます。
Saveメソッドの使い方:
ワークブック.Save
ワークブックの指定方法はいくつかあるので、それぞれ上書き保存するサンプルを用意しました。
Saveメソッドを使ったサンプルコード:
ThisWorkBook.Save 'マクロ実行ブックの上書き保存 ActiveWorkBook.Save 'アクティブワークブックの上書き保存 Workbooks("ブック名").Save 'ブック名を指定した上書き保存
ThisWorkBookでマクロ実行ブック、ActiveWorkBookでアクティブワークブック、Workbooks(“ブック名”)でブック名を指定して保存するサンプルです。このように、簡単にブックを上書き保存することができます。
Saveメソッドの使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!
名前を付けて保存する方法
次に、名前を付けて保存する方法について解説します。SaveAsメソッドを使って次のように書くことで、名前を付けて保存することができます。
SaveAsメソッドの使い方:
ワークブック.SaveAs ファイル名を含めたファイルパス
Saveメソッドと同じようにワークブック指定方法はいくつかあるので、それぞれ上書き保存するサンプルを用意しました。
SaveAsメソッドを使ったサンプルコード:
'マクロ実行ブックの上書き保存 ThisWorkBook.SaveAs ThisWorkBook.Path & “Test1.xlsx” 'アクティブワークブックの上書き保存 ActiveWorkBook.SaveAs ActiveWorkBook.Path & “Test2.xlsx” 'ブック名を指定した上書き保存 Workbooks(“ブック名”).SaveAs Workbooks(“ブック名”).Path & “Test3.xlsx”
このように、簡単に名前を付けて保存することができます。
SaveAsメソッドの使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!
ダイアログでファイルを指定して保存する方法
名前を付けて保存する場合、保存場所・ファイル名を指定して保存したいときもありますよね。GetSaveAsFilenameメソッドを使えば、簡単に保存先・ファイル名を指定することができます。
SaveAsメソッドと組み合わせて指定した保存先・ファイル名で保存するサンプルを用意しました。
ファイル保存前のフォルダ:
サンプルコード:
Sub Test() 'ダイアログで保存先・ファイル名を指定 Dim strFilePath As String strFilePath = Application.GetSaveAsFilename '名前を付けて保存 ThisWorkbook.SaveAs strFilePath End Sub
実行直後に出てくるダイアログボックス:
保存先・ファイル名を入力して保存ボタンをおすことで、ファイルが保存されます。
実行後のフォルダ:
このように、保存時に保存先・ファイル名を指定したい場合はGetSaveAsFilenameメソッドがおすすめです!
ブックを保存してから閉じる方法
次に、ブックを保存してから閉じる方法について解説します。Closeステートメントを使えば、以下のように簡単に保存後にブックを閉じることができます。
保存後にブックを閉じる方法:
ワークブック.Close True '上書き保存して閉じる ワークブック.Close True , ファイルパス '名前を付けて保存してから閉じる
このように、簡単にブック保存後に閉じることができます。Closeステートメントの詳しい使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!
保存時の警告メッセージを非表示にする方法
ファイル保存時に既にファイルがある場合や、初めてブックを作成したときに上書き保存してしまった場合などに、警告メッセージが表示されるときがあります。
VBAの処理が途中で止まってしまうため、一時的にメッセージを非表示にして処理を進めるのがおすすめです。以下のように「Application.DisplayAlerts」で処理を囲むことで、メッセージを無視してブックを保存することができます。
'メッセージを無視してそのまま保存 Application.DisplayAlerts = False 'メッセージを一時的に非表示 ThisWorkBook.SaveAs ThisWorkBook & "Test.xlsx" Application.DisplayAlerts = True 'メッセージを表示設定に戻す
DisplayAlertsプロパティの使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!
合わせて覚えると便利なブック操作方法
ここまでブックを保存する方法をメインに解説してきました。ただ、ブックを保存する処理以外にもブック操作で覚えておくと便利なメソッド・プロパティはたくさんあります。
ブックの作成・データ取得・データコピー・閉じる処理など、以下で詳しく解説しているので気になる方は見てみてくださいね!
まとめ
今回は、ブックを保存する方法について解説しました!
今回解説した、
の4つを覚えておけば応用が利くので、ぜひ使ってみてくださいね!