OfficeType

VBA~名前を付けて保存ダイアログボックスのファイルの種類を指定しよう~Excel

VBAでApplication.GetSaveAsFilenameメソッドを使ってダイアログボックスを表示しユーザーが保存場所と保存名を決める時に引数FileFilterを設定するとファイルの種類を指定できます。

下のコードはbookpath = Application.GetSaveAsFilename(FileFilter:="Excel ブック, *.xlsx")を実行すると名前を付けて保存ダイアログボックスが表示されます。FileFilterが設定されているのでファイルの種類がExcel ブック, *.xlsxのみ設定されています。ここでキャンセルを押すと"FALSE"を返すのでbookpathという変数に"FALSE"が格納されIf文の条件式bookpath = "False"を満たすのでExit Subを実行し保存せずにコードを終了します。ダイアログボックスでユーザーが保存場所を選択し、ブック名を入力し保存をクリックすると、その時点では保存されずbookpathという変数に選択した保存場所とファイル名のフルパスが格納されます。bookpathにフルパスが格納されているのでIf文の条件式bookpath = "False"を満たさないのでIfとEnd Ifの間に書かれたコードは実行しないのでExit Subは実行せずに最後に書かれているWorkbooks("サンプル.xlsx").SaveAs bookpathを実行し、ここで選択した保存場所に入力したブック名でワークブックが保存されます。

Sub test1()

Dim bookpath As String
bookpath = Application.GetSaveAsFilename(FileFilter:="Excel ブック, *.xlsx")

If bookpath = "False" Then
Exit Sub
End If

Workbooks("サンプル.xlsx").SaveAs bookpath

End Sub