Excel VBAでCSVファイルを作成するマクロを書いて

2023-03-08

以下は、Excel VBAでCSVファイルを作成するマクロの例です。このマクロでは、現在のExcelブックのデータをCSV形式で保存します。

Sub ExportToCSV()
    Dim MyFile As String
    Dim i As Integer, j As Integer
    Dim cellValue As String
    
    ' CSVファイルの保存先とファイル名を指定
    MyFile = ThisWorkbook.Path & "\" & ThisWorkbook.Name & ".csv"
    
    ' CSVファイルを開く
    Open MyFile For Output As #1
    
    ' Excelの各行と列のデータをCSVファイルに書き込む
    For i = 1 To ActiveSheet.UsedRange.Rows.Count
        For j = 1 To ActiveSheet.UsedRange.Columns.Count
            cellValue = ActiveSheet.Cells(i, j).Value
            
            ' 文字列内にカンマがある場合はダブルクォーテーションで囲む
            If InStr(cellValue, ",") > 0 Then
                cellValue = """" & cellValue & """"
            End If
            
            ' カンマ区切りでCSVファイルに書き込む
            If j = 1 Then
                Print #1, cellValue;
            Else
                Print #1, "," & cellValue;
            End If
        Next j
        ' 改行する
        Print #1, ""
    Next i
    
    ' CSVファイルを閉じる
    Close #1
End Sub

このマクロでは、以下の処理を行います。

CSVファイルの保存先とファイル名を指定します。
CSVファイルを開きます。
Excelの各行と列のデータを読み取り、カンマ区切りでCSVファイルに書き込みます。文字列内にカンマがある場合は、ダブルクォーテーションで囲んで書き込みます。
CSVファイルを閉じます。
上記のマクロを実行すると、現在のExcelブックのデータがCSV形式で保存されます。

Copyright(c) 2016 e-Shikumi-Labo All Rights Reserved.