拡張子をみて保存形式を切り替えてくれる
Dim vntFileName As Variant 'ファイルを保存するダイアログを開きます vntFileName = _ Application.GetSaveAsFilename( _ InitialFileName:=ThisWorkbook.Name _ , FileFilter:="エクセルファイル(*.xls),*.xls" & _ ",CSVファイル(*.csv),*.csv" _ , FilterIndex:=1 _ , Title:="保存先の指定" _ ) 'ファイルが指定されているときは '指定したファイルをWorkbooks.SaveAsメソッドで保存します If vntFileName <> False Then '確認ダイアログを一時的に非表示にします Application.DisplayAlerts = False '1.ファイルの種類がXLSであればワークブック形式で保存します '2.選択したファイルの種類は、ファイル名の拡張子から判断します '3.拡張子を大文字・小文字どちらで入力してもいいように ' 判断は大文字に変換した後行います If StrConv(Right(vntFileName, 3), vbUpperCase) = "XLS" Then ThisWorkbook.SaveAs Filename:=vntFileName _ , FileFormat:=xlNormal Else 'ファイルの種類がCSVであればCSV形式で保存します ActiveSheet.SaveAs Filename:=vntFileName _ , FileFormat:=xlCSV End If '確認ダイアログの非表示を元に戻します Application.DisplayAlerts = True End If
ネタ元