エクセルマクロで、名前を付けて保存時に拡張子をCSVに設定するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
名前を付けて保存時に拡張子をCSVに設定
以下のマクロを実行すると、
名前を付けて保存ダイヤログを表示し、拡張子をCSVに設定します。
Sub 名前を付けて保存で拡張子に設定()
Dim FileName As String
Dim FindPos As Long
Dim Done As Variant
'拡張子を除くファイル名を取得
FindPos = InStrRev(ActiveWorkbook.Name, ".")
FileName = Left(ActiveWorkbook.Name, FindPos - 1)
Done = IIf(Application.Dialogs(xlDialogSaveAs). _
Show(Arg1:=ThisWorkbook.Path & "\" & FileName & ".csv", Arg2:=xlCSV), _
"保存", "キャンセル")
If Done = "キャンセル" Then
'「キャンセル」を選択したときの動作を入力する
Else
'「保存」を選択したときの動作を入力する
End If
End Sub
「ファイル名」の拡張子と「ファイルの種類」の両方が、CSVに設定されます。
「Arg1」と「Arg2」の両方の拡張子がCSVに揃っていなければ、
上図のように「ファイル名」は表示されません。
例えば、以下のコードでは「ファイル名」が表示されません。
「ファイル名」が表示されない原因は、
「Arg1」の ActiveWorkbook.Name の拡張子は「.xlsm」になっていて、
「Arg2」は CSV に設定されているためです。
Sub 名前を付けて保存()
Dim Done As Variant
Done = IIf(Application.Dialogs(xlDialogSaveAs).Show _
(Arg1:=ThisWorkbook.Path & "\" & ActiveWorkbook.Name, Arg2:=xlCSV), _
"保存", "キャンセル")
If Done = "キャンセル" Then
'「キャンセル」を選択したときの動作
Else
'「保存」を選択したときの動作
End If
End Sub

【エクセルマクロ】シートを別ファイルで保存:作業が2倍速くなる!
...