Excel VBAを使用してCSVファイルを保存し、再度そのデータを読み込む方法について解説します。具体的なコード例とともに、注意点や調整方法を詳しく説明します。
CSVファイルを保存するVBAコード
Excelで作成したシートをCSV形式で保存する方法は非常に簡単です。以下のコードで、`Sheet1`をCSV形式で保存できます。
Sub csv1()
Sheets("Sheet1").Copy
With Application
.ScreenUpdating = False
.DisplayAlerts = False
With ActiveWorkbook
.SaveAs ThisWorkbook.Path & "\" & "t.csv", xlCSV
.Close
End With
.ScreenUpdating = False
.DisplayAlerts = True
End With
End Sub
このコードでは、`Sheet1`を新たなワークブックとしてコピーし、CSVとして保存しています。保存先のパスやファイル名は、適宜変更してください。
CSVデータを取り込むVBAコード
CSVファイルをExcelにインポートするには、`QueryTable`を使用します。以下はCSVファイルをインポートするためのコードです。
Sub Testsss()
Dim wsImport As Worksheet
Set wsImport = Worksheets("t") 'CSVデータを取り込み用シート
'読み込むファイル
Dim strFilePath As String
strFilePath = "C:\Users\p\デスクトップ\t.csv"
Application.ScreenUpdating = False
Dim queryTb As QueryTable
Set queryTb = wsImport.QueryTables.Add(Connection:="TEXT;" & strFilePath, _
Destination:=wsImport.Range("A1")) ' CSV を開く
With queryTb
.TextFilePlatform = 932 ' 文字コードを指定
.TextFileParseType = xlDelimited ' 区切り文字の形式
.TextFileCommaDelimiter = True ' カンマ区切り
.RefreshStyle = xlOverwriteCells ' セルに書き込む方式
.Refresh ' データを表示
.Delete ' CSVファイルとの接続を解除
End With
Application.ScreenUpdating = True
End Sub
このコードでは、指定されたCSVファイルを読み込み、指定したシートにそのデータをインポートします。`TextFilePlatform`で文字コードを指定し、`TextFileCommaDelimiter`でカンマ区切りを指定しています。
コード内の設定について
質問の中で触れられている`TextFilePlatform = 932`や`TextFileCommaDelimiter = True`などの設定は、CSVファイルの読み込みにおいて重要な部分です。これらの設定は、ファイルが正しく読み込まれるようにするために必要です。特に、文字コードを`932`に設定することで、Shift-JISエンコードされたCSVファイルを正しく処理できます。
まとめ
Excel VBAを使ってCSVファイルを保存し、再度そのデータを読み込む方法を紹介しました。CSVファイルの保存とインポートは、`SaveAs`と`QueryTables.Add`を使用して簡単に実行できます。`TextFilePlatform`や`TextFileCommaDelimiter`などの設定を適切に行うことで、データを正確に読み込むことができます。
コメント