ファイル指定ダイアログの表示

ファイルを保存する際に、ファイルの保存先を指定する「名前を付けて保存」ダイアログを表示して保存することができます。ここでは Excel VBA でファイル指定ダイアログを表示する方法について解説します。

(2022 年 06 月 13 日公開 / 2022 年 06 月 13 日更新)

ファイル指定ダイアログの表示

「名前を付けて保存」ダイアログを表示するにはApplicationオブジェクトの「GetSaveAsFilename」メソッドを使います。

Dim fname As String

fname = Application.GetSaveAsFilename

メソッドを実行した結果、指定したファイル名を戻り値として返してきます。ただし、ダイアログで「キャンセル」ボタンをクリックした場合にはファイル名ではなく「False」が帰ってきます。このメソッドではファイル名が取得できるだけなので、ブックを保存する場合には取得したファイル名を使って別途ブックを保存する処理を行って下さい。

Dim fname As String

fname = Application.GetSaveAsFilename
If fname <> "False" Then
    ActiveWorkbook.SaveAs Filename:=fname
End If

保存するファイル名としてデフォルトで表示するファイル名を指定出来ます。指定する場合には「InitialFilename」で指定します。省略した場合には保存しようとするブック名がデフォルトで表示されます。

Dim fname As String

fname = Application.GetSaveAsFilename( _
    InitialFilename:="売上一覧表.xls")

またデフォルトではダイアログのタイトルは「名前を付けて保存」ですが、「Title」引数に値を設定することで、タイトルを任意の文字列に変更することができます。

Dim fname As String

fname = Application.GetSaveAsFilename( _
    Title:="売上一覧の保存先")

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    
    Dim fname As String

    Workbooks.Open filename:="C:¥excelsample¥2005年成績.xls"
    ActiveSheet.Range("A1").Value = "保存"

    fname = Application.GetSaveAsFilename( _
        InitialFileName:="成績表保存.xls", _
        Title:="成績ファイルの保存")
        
    If fname <> "False" Then
        ActiveWorkbook.SaveAs filename:=fname
    End If
        
End Sub

上記マクロを実行すると下記のようなダイアログが表示されます。

ダイアログを表示して名前を付けて保存

保存するファイル名を変更する場合は変更した後で「保存」ボタンをクリックします。指定した名前でブックが保存されていることを確認しておいて下さい。

-- --

Excel VBA でファイル指定ダイアログを表示する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。