拡張子をみて保存形式を切り替えてくれる
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ネタ元