VBA 名前を付けて保存時に拡張子をCSVに設定(動画あり)

エクセルマクロでエクセルを拡張子CSVで保存アイキャッチ ExcelVBA

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

 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】名前を付けて保存処理を自動化する使用例
 

【エクセルマクロ】名前を付けて保存処理を自動化:超便利8選
...

 

「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!