大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAのSavaAs名前を付けて保存する方法をご紹介します。名前を付けて保存する際には、日付を付けると名前が被らないのでおすすめです。保存する際に.csv.txtへ拡張子を変更して保存することもできます。

はじめに

この記事ではExcel VBAのSaveAs名前を付けて保存する方法をご紹介します。

名前を付けて保存する場合、ファイル名に日付を付ける方法をおすすめします。

ファイル名に日付を付けて保存すれば履歴を残しながらファイルを更新していくといった使い方もできます。

名前を付けて保存する際に拡張子を変更して保存することもできます。

この記事で紹介すること

  • Saveasで名前を付けて保存
  • ファイル名に日付を入れる
  • FileFormatで拡張子変更(.xlsx、.xlsm、.csv、.txt)
  • SaveCopyasでブックのコピー

目次から見たい項目へ移動すると便利ですよ。

目次

VBAのSaveAsで名前を付けて保存

Excel VBAのSaveAsで名前を付けて保存する方法をご紹介します。

Excel VBAコード

名前を付けて保存するExcel VBAコードです。

'ブックを名前を付けて保存
Sub TEST1()
    
    'ファイルパスを設定
    a = ThisWorkbook.Path & "\TEST1.xlsm"
    
    '名前を付けて保存
    ThisWorkbook.SaveAs FileName:=a
        
End Sub

『SaveAs』という関数を使います。

『〇〇.SaveAs FileName:=△△』で〇〇というファイルを△△という名前で保存という意味になります。

ここで△△にはフルパスを指定する必要があります。

『ThisWorkbook.SaveAs FileName:=a』で、現在のファイルをaというファイルパスで保存するということになります。

『ThisWorkbook.Path』は現在のファイルのフォルダパスを取得するコードです。

例えば現在のファイルが『C:〇〇\〇〇\TEST.xlsm』だとすると『C:〇〇\〇〇』を取得することができます。

現在のファイルの同フォルダからフルパスを記載する際に便利です。

保存前

保存前のファイル名です。

元ファイル

元ファイルは『TEXT.xlsm』という名前です。

保存する前のフォルダです。

元フォルダ

名前を付けて保存します。

名前を付けてファイルを保存後

ファイルを名前を付けて保存した結果です。

名前を付けて保存後のファイル名

『TEXT1.xlsm』という名前で保存されました。

名前を付けて保存なので開いているファイルは保存後の名前になっています。

保存後のフォルダです。

名前を付けて保存後のフォルダ

フォルダにも新しく『TEXT1.xlsm』ができています。

もちろん元のファイル『TEST.xlsm』はそのままです。

ファイル名に日付を付ける

ファイルを名前を付けて保存する際は日付を付けるのがおすすめです。

名前を付けて保存する際にはファイル名に気を付ける必要があります。

同じ名前があると確認画面が出てきてExcel VBAではエラーとなります。

すでにあるファイル名で保存してしまうと元データを消してしまうリスクがあります。

Excel VBAコード

ファイル名に日付を付けて保存するExcel VBAコードです。

'ブックを名前を付けて保存(日付)
Sub TEST2()
    
    a = "TEST" 'ファイル名
    b = Format(Now(), "yyyymmdd-hhmmss") '日付
    c = a & "_" & b & ".xlsm" 'ファイル名(拡張子付き)
    d = ThisWorkbook.Path & "\" & c 'ファイルパス
    
    '名前を付けて保存
    ThisWorkbook.SaveAs FileName:=d
    
End Sub

『Now()』で日付と現在の時刻を取得することができます。

取得した日付と時刻を『Format』で『yyyymmdd-hhmmss』形式にしています。

これで、『20200808-121212』のように日付を取得することができます。

保存前

元のファイルです。

元ファイル

元フォルダです。

元フォルダ

日付を付けたファイル名で名前を付けて保存します。

名前を付けて保存(日付を付ける)

日付をつけて保存した結果です。

日付を付けて保存後のファイル名

現在ファイルが『TEST_日付.xlsm』のように日付がついたファイル名になっています。

フォルダはこのようになります。

日付を付けて保存後のフォルダ

フォルダには元ファイルは残ったままで新しく日付が入ったファイルが保存されています。

ファイルの拡張子変更

ファイルの拡張子を変更して名前を付けて保存する方法です。

ファイルの拡張子の変更を使う場面としては、別ブックの拡張子を変更するときに使われるかと思います。

現在のファイルの一部のシートを別ブックにコピーして拡張子を変えて保存といった場合ですね。

ここでは簡単に説明するため現在のファイルの拡張子を変更して保存する方法で説明します。

代表的なもので次の拡張子へ変更する方法をご紹介します。

拡張子

  • .xlsx
  • .xlsm
  • .csv
  • .txt

.xlsx

拡張子.xlsxで保存する方法です。

Excel VBAコード

.xlsxへ拡張子を変更してファイルを保存するExcel VBAコードです。

'ブックを名前を付けて保存(.xlsx)
Sub TEST3()
    
    '確認画面を非表示
    Application.DisplayAlerts = False
    
    'ファイルパスを設定
    a = ThisWorkbook.Path & "\TEST1.xlsx"
    
    '名前を付けて保存(.xlsx)
    ThisWorkbook.SaveAs FileName:=a, FileFormat:=xlOpenXMLWorkbook
            
End Sub

拡張子を変更するには『FileFormat』に引数を入力します。

.xlsxは『FileFormat:=xlOpenXMLWorkbook』のように指定します。

『Application.DisplayAlerts = False』で確認画面を非表示にすることができます。

拡張子を変えてファイルを保存すると確認画面がでてきますので、これを非表示にすることができます。

保存前

保存前のファイルです。

元ファイル

保存前のフォルダです。

元フォルダ

.xlsxで名前を付けて保存します。

名前を付けて保存後(.xlsx)

拡張子を.xlsxへ変更して名前を付けて保存した結果です。

.xlsxへ変更して保存したファイル名

現在のファイルの拡張子が.xlsxに変更されていることがわかります。

保存後のフォルダです。

.xlsxへ変更してファイルを保存したフォルダ

拡張子が.xlsxとなったファイルができています。

.xlsm

拡張子.xlsmで保存する方法です。

Excel VBAコード

.xlsmへ拡張子を変更してファイルを保存するExcel VBAコードです。

'ブックを名前を付けて保存(.xlsm)
Sub TEST4()
    
    '確認画面を非表示
    Application.DisplayAlerts = False
    
    'ファイルパスを設定
    a = ThisWorkbook.Path & "\TEST1.xlsm"
    
    '名前を付けて保存(.xlsm)
    ThisWorkbook.SaveAs FileName:=a, FileFormat:=xlOpenXMLWorkbookMacroEnabled
            
End Sub

.xlsmは『FileFormat:=xlOpenXMLWorkbookMacroEnabled』のように指定します。

同じように『Application.DisplayAlerts = False』で確認画面を非表示にします。

この場合は、元ファイルの拡張子が.xlsmなのでFileFormatをつけなくても名前を付けて保存できます。

.xlsmから.xlsmへ名前を付けて保存なので、Application.DisplayAlerts = False』をつけなくても表示はでません。

保存前

保存前のファイルです。

保存前ファイル

保存前のフォルダです。

保存前フォルダ

.xlsm形式で名前を付けて保存します。

名前を付けて保存(.xlsm)

拡張子を.xlsmへ変更して名前を付けて保存した結果です。

拡張子を.xlsmへ変更して保存したファイル名

現在のファイルの拡張子が.xlsmに変更されていることがわかります。

保存後のフォルダです。

拡張子を.xlsmへ変更して保存した後のフォルダ

拡張子が.xlsmとなったファイルができています。

.csv

拡張子.csvで保存する方法です。

Excel VBAコード

.csvへ拡張子を変更してファイルを保存するExcel VBAコードです。

'ブックを名前を付けて保存(.csv)
Sub TEST5()
    
    '確認画面を非表示
    Application.DisplayAlerts = False
    
    'ファイルパスを設定
    a = ThisWorkbook.Path & "\TEST1.csv"
    
    '名前を付けて保存(.csv)
    ThisWorkbook.SaveAs FileName:=a, FileFormat:=xlCSV
            
End Sub

.csvは『FileFormat:=xlCSV』のように指定します。

同じように『Application.DisplayAlerts = False』で確認画面を非表示にします。

保存前

保存前のファイルです。

保存前ファイル

保存前のフォルダです。

保存前フォルダ

.csvで名前を付けて保存します。

名前を付けて保存(.csv)

拡張子を.csvへ変更して名前を付けて保存した結果です。

拡張子を.csvへ変更して保存したファイル名

現在のファイルの拡張子が.csvに変更されていることがわかります。

保存後のフォルダです。

拡張子を.csvへ変更して保存したフォルダ

拡張子が.csvとなったファイルができています。

.txt

拡張子.txtで保存する方法です。

Excel VBAコード

.txtへ拡張子を変更してファイルを保存するExcel VBAコードです。

'ブックを名前を付けて保存(.txt)
Sub TEST6()
    
    '確認画面を非表示
    Application.DisplayAlerts = False
    
    'ファイルパス設定
    a = ThisWorkbook.Path & "\TEST1.txt"
    
    '名前を付けて保存(.txt)
    ThisWorkbook.SaveAs FileName:=a, FileFormat:=xlText
            
End Sub

.txtは『FileFormat:=xlText』のように指定します。

同じように『Application.DisplayAlerts = False』で確認画面を非表示にします。

保存前

保存前のファイルです。

保存前ファイル

保存前のフォルダです。

保存前フォルダ

.txtで名前を付けて保存します。

名前を付けて保存(.txt)

拡張子を.txtへ変更して名前を付けて保存した結果です。

拡張子を.txtへ変更して保存したファイル名

現在のファイルの拡張子が.txtに変更されていることがわかります。

エクセルで.txtで開いているので違和感がありますのでメモ帳で開いてみます。

拡張子を.txtへ変更したファイルをメモ帳で開く

問題なくメモ帳で開けます。

保存後のフォルダです。

拡張子を.txtへ変更して保存したフォルダ

拡張子が.txtとなったファイルができています。

VBAのSaveCopyAsでブックのコピー

ちょっとタイトルからは脱線しますが、Excel VBAの『SaveCopyAs』で現在のファイルをコピーして保存する方法です。

名前を付けて保存ではなく現在のファイルをバックアップしたい場合に使えるかと思いますのでご紹介します。

Excel VBAコード

現在のファイルをコピーして保存する方法です。

'ブックを別ブックで保存(バックアップ)
Sub TEST7()
    
    a = "TEST" 'ファイル名
    b = Format(Now(), "yyyymmdd-hhmmss") '日付
    c = a & "_" & b & ".xlsm" 'ファイル名(拡張子付き)
    d = ThisWorkbook.Path & "\" & c 'ファイルパス
    
    'ブックをコピーして保存
    ThisWorkbook.SaveCopyAs FileName:=d
    
End Sub

『SaveCopyAs』を使ってファイルをコピーすることができます。

『〇〇.SaveCopyAs FileName:=△△』というように記載して、〇〇をファイル名△△でコピーするということになります。

コピー前

コピー前のファイルです。

保存前ファイル

ファイルコピー前のフォルダです。

保存前フォルダ

現在のファイルをコピーします。

ファイルコピー後

ファイルコピー後のファイルです。

ファイルコピー後のファイル

コピーなので現在のファイルは変更されません。

コピー後のフォルダです。

ファイルコピー後のフォルダ

新しく日付がついたファイルが作成されています。

おわりに

Excel VBAのSaveAsで名前を付けて保存する方法をご紹介しました。

名前を付けて保存する場合はファイル名に日付を付けて保存する方法をおすすめします。

FileFormatで名前を付けて保存する際に拡張子を変えて保存することができます。

別ブックのエクセルファイルをCSVへ変更するといった使い方ができるかと思います。

ご参考になればと思います。最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す