VBA 名前を付けて保存ダイアログ表示方法 - Excel
VBAで「名前を付けて保存」ダイアログを表示する方法です。
「名前を付けて保存」ダイアログとは、下図のようなファイル名を指定して保存するダイアログのことです。
これを VBA で表示する方法を紹介します。
ここでは Excel 2010 で検証しましたが、Excel2013、Excel2016、Excel2019でも同じです。
「名前を付けて保存」ダイアログ表示方法
「名前を付けて保存」ダイアログを表示するにはApplication.GetSaveAsFilename
メソッドを利用します。
式
GetSaveAsFilename(InitialFilename, FileFilter, FilterIndex, Title, ButtonText)
パラメーター
名前 | 必須 | データ型 | 説明 |
---|---|---|---|
InitialFilename | × | Variant | 既定値として表示するファイル名を指定します。この引数を省略すると、作業中のブックの名前が使われます。 |
FileFilter | × | Variant | ファイルの候補を指定する文字列 (ファイル フィルター文字列) を指定します。 |
FilterIndex | × | Variant | 引数 FileFilter で指定したファイル フィルター文字列の中で、1 から何番目の値を既定値とするかを指定します。この引数を省略するか、ファイル フィルター文字列の数より大きい数値を指定すると、最初のファイル フィルター文字列が既定値となります。 |
Title | × | Variant | ダイアログ ボックスのタイトルを指定します。この引数を省略すると既定のタイトルが使用されます。 |
ButtonText | × | Variant | Macintosh でのみ指定できます |
戻り値
バリアント型 (Variant)
サンプルソース
Sub Macro1()
Dim FileName As Variant
FileName = _
Application.GetSaveAsFilename( _
InitialFileName:=ThisWorkbook.Name _
, FileFilter:="Excel マクロ有効ブック(*.xlsm),*.xlsm" _
, FilterIndex:=1 _
, Title:="保存先の指定" _
)
If FileName <> False Then
Application.DisplayAlerts = False
ThisWorkbook.SaveAs FileName:=FileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.DisplayAlerts = True
End If
End Sub
VBA で「名前を付けて保存」ダイアログ表示するということは、ファイルの種類は「マクロ有効ブック」ということになります。そのため FileFilter パラメータに *.xlsm を指定しています。戻り値は、ダイアログの「保存」ボタンを押下すれば指定したファイルのフルパスが返り、「キャンセル」ボタンを押下すれば False が返ります。
参考サイト
まとめ
VBAで「名前を付けて保存」ダイアログを表示する方法を紹介しました。
「名前を付けて保存」ダイアログを表示する方法って、実務で何気に使います。ってか、結構使う頻度高いです。ここでしっかり覚えておきましょう。
おつかれさまでした。