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選
エクセルマクロで、名前をつけて保存処理を自動化するVBAコードをご紹介します。どのマクロコードも、コピペで使用できます。ぜひお試しください!

 

[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう

ChatGPTと対話しながら身につける、新しいVBA入門

Excelマクロ・VBAをAIと一緒にラクに習得したいなら、まず読んでおきたい一冊です!


★★★★★ 4.6 ※ Amazonカスタマーレビューより
マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
変数・条件分岐・ループなどVBAの基礎もしっかり解説されている