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

広告

ファイルを保存する際に、ファイルの保存先を指定する「名前を付けて保存」ダイアログを表示する方法を見ていきます。「名前を付けて保存」ダイアログを表示するには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:="売上一覧の保存先")

サンプルプログラム

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

testbooknew10.bas

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 )