Application.GetSaveAsFilename(InitialFilename, FileFilter, FilterIndex, Title)
ダイアログボックスを表示してファイル(Workbook)を保存する方法です。
WorkbookオブジェクトではなくてApplicationオブジェクトのメソッドです。
ダイアログボックスを表示してファイル(Workbook)を保存する方法です。
WorkbookオブジェクトではなくてApplicationオブジェクトのメソッドです。
| 名前 | 説明 | 備考 | 
|---|---|---|
| InitialFilename | ファイル名 | 省略した場合→ 現在と同じファイル名 (変更なし) | 
| FileFilter | ファイルの候補を指定する文字列 | 省略した場合→ すべてのファイル(*.*) | 
| FilterIndex | FileFilterに複数指定した場合に使用 | 省略した場合→ 最初のFilter | 
| Title | ダイアログボックスのタイトル | 省略した場合→ "名前を付けて保存" | 
戻り値はVariant型です
このメソッドはあくまでファイル保存のダイアログボックスを表示して拡張子を含むファイル名を取得するメソッドです。
ファイルを保存するにはWorkbookオブジェクトのSaveAsメソッドを使用する必要があります。
また、ダイアログボックスから取得した拡張子を含むファイル名は表面上のファイル名なのでファイルの実際のフォーマットまでは指定されていません。
FileFilterで複数の拡張子を選択出来るようにした場合は、選択されたFileFilterごとの処理を記述する必要があります。
例)xlsかcsv形式でファイルを保存する
このメソッドはあくまでファイル保存のダイアログボックスを表示して拡張子を含むファイル名を取得するメソッドです。
ファイルを保存するにはWorkbookオブジェクトのSaveAsメソッドを使用する必要があります。
また、ダイアログボックスから取得した拡張子を含むファイル名は表面上のファイル名なのでファイルの実際のフォーマットまでは指定されていません。
FileFilterで複数の拡張子を選択出来るようにした場合は、選択されたFileFilterごとの処理を記述する必要があります。
例)xlsかcsv形式でファイルを保存する
Sub SaveD1()
    Dim SaF As Variant
    
    'ファイル保存のダイアログボックス表示
    SaF = Application.GetSaveAsFilename( _
    InitialFileName:="TesstaaSA", _
    FileFilter:="Excel 97-2003 ブック(*.xls), *.xls" _
    & ",CSV(*.csv),*.csv", _
    FilterIndex:=1, _
    Title:="ファイル名を指定")
    
    'キャンセルボタンを押した場合の処理
    If SaF <> "False" Then
    Else
    Exit Sub
    End If
    
    'ファイルを保存する
    '拡張子がxlsの場合
    If Right(SaF, 3) = "xls" Then
    ActiveWorkbook.SaveAs Filename:=SaF, FileFormat:=xlNormal
    Else
    '拡張子がcsvの場合
    ActiveWorkbook.SaveAs Filename:=SaF, FileFormat:=xlCSV
    End If
    
End Sub
戻り値の変数としてのデータ型はVariantとしてますがStringでも変な動きはしなさそうです。