【エクセルマクロ】名前を付けて保存時に拡張子をCSVに設定する

エクセルマクロでエクセルを拡張子CSVで保存アイキャッチ エクセルマクロで効率化する

エクセルマクロで、名前を付けて保存時に拡張子を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倍速くなる!
...