Excelファイルの保存時にCSVファイルも保存してみる

Excel VBAでマクロを書いてみる
の続き

Excelファイルを保存した時、同時にCSVファイルも保存してみる。


VisualBasicを起動し、下記のようにコードを書く。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Dim sheet As Worksheet
    Dim name As String

    ' 各シートをCSV保存する
    For Each sheet In Worksheets
        ' ファイル名
        name = ActiveWorkbook.FullName & "_" & sheet.Name & ".csv"

        ' シートを別のワークブックにコピーする
        sheet.Copy

        ' コピーしたワークブックを上書き保存
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=name, FileFormat:=xlCSV
        Application.DisplayAlerts = True

        ' コピーしたワークブックを閉じる
        ActiveWorkbook.Close SaveChanges:=False
    Next sheet

End Sub

確認

下記のようなExcelファイルを保存すると、

CSVファイルも保存される。

CSVファイルの中身は下記のような感じで出力される。

a,b,c
1,2,3