【VBAスタンダード対策】SaveAs メソッドによる「名前を付けて保存」を攻略!
ブックを別名で保存する際に使用する SaveAs メソッド。VBAスタンダード試験では、保存先パスを指定する第1引数(Filename)の書き方や、保存後のアクティブブックの状態に関する理解が頻繁に問われます。
1. 問題:SaveAs メソッドによるファイル保存指定
【 問題 】 アクティブなワークブックを、C:\Data フォルダの中に Report_2026.xlsx というファイル名で「名前を付けて保存」したい。空欄 ( A ) に入る正しい記述はどれでしょうか?
Dim folderPath As String
Dim fileName As String
folderPath = "C:\Data\"
fileName = "Report_2026.xlsx"
( A )
End Sub
① ActiveWorkbook.SaveAs Path:=folderPath & fileName
② ActiveWorkbook.SaveAs Filename:=folderPath & fileName
③ ActiveWorkbook.SaveAs File:=folderPath & fileName
④ ActiveWorkbook.SaveAs Name:=folderPath & fileName
2. 正解:SaveAs メソッドの引数に関する正解
正解: ② ActiveWorkbook.SaveAs Filename:=folderPath & fileName
3. 解説:SaveAs メソッドの基本構文と重要な引数ルール
ワークブックを別の名前や異なるパスで保存するには Workbook.SaveAs メソッドを使用します。
構文:Workbook.SaveAs( Filename , FileFormat , ... )
1. 第1引数の名前は「Filename」!
保存先のフォルダパスとファイル名を結合したフルパスを指定する引数名は Filename です。直感的に「Path」や「Name」、「File」を選びがちですが、これらは名前付き引数として存在しないためコンパイルエラーとなります。
2. SaveAs を実行した後の動作(重要!)
SaveAs を実行すると、「現在開いているブック自体」が新しい保存先のブックに切り替わります(元のファイルは閉じられ、保存後のファイルがアクティブになります)。※元のファイルを開いたまま別名コピーを保存したい場合は、
SaveCopyAs メソッドを使用します。ここが試験に出る!: スタンダード試験では、SaveAs の引数名(Filename)のひっかけ問題のほか、「マクロ付きブック(.xlsm)として保存する場合の FileFormat 引数(xlOpenXMLWorkbookMacroEnabled)」 の指定要否についてもよく出題されます。
4. まとめ
「名前を付けて保存は Workbook.SaveAs Filename:="フルパス" 」。この構文と引数名を正確に覚えておけば、作成したレポートを日付や拠点名入りのファイル名で自動保存するマクロを迷わず実装できるようになります。