VBA 名前を付けて保存ダイアログ表示方法 - Excel

VBAで「名前を付けて保存」ダイアログを表示する方法です。

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×VariantMacintosh でのみ指定できます

戻り値

バリアント型 (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で「名前を付けて保存」ダイアログを表示する方法を紹介しました。

「名前を付けて保存」ダイアログを表示する方法って、実務で何気に使います。ってか、結構使う頻度高いです。ここでしっかり覚えておきましょう。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。