- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでCSVファイルを分割したい)
VBAでCSVファイルを分割する方法
このQ&Aのポイント
- VBAを使ってCSVファイルを一定のレコード数ごとに分割する方法について教えてください。他の方法でも構いませんが、VBAを使って実現したいです。
- サンプルコードやヒントを教えていただけると助かります。
- 分割する際にヘッダーも含めたいです。例えば、2つのレコードごとに分割する場合、各ファイルにはヘッダー行と2つのデータ行が含まれるようにしたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
シートに貼り付けて……なんてやると日付のデータなどが勝手にExcelによって変更されてしまいますので、テキストとしてLine Inputで一行づつ読み込んで配列に格納し、その後で別々なファイルに書きだしてやる方が良いかと思います。 Sub Sample() Dim nFF As Integer Dim sLine As String Dim sCsv() As String 'CSVを1行ごと配列に取り込む nFF = FreeFile Open "C:\Temp\Sample.csv" For Input As #nFF i = 0 Do While Not EOF(1) Line Input #nFF, sLine ReDim Preserve sCsv(i) sCsv(i) = sLine i = i + 1 Loop Close #nFF '2レコードづつ違うファイルに j = 1 For k = 1 To UBound(sCsv) Step 2 nFF = FreeFile Open "C:\Temp\Sample_" & j & ".csv" For Output As #nFF Print #nFF, sCsv(0) 'ヘッダ Print #nFF, sCsv(k) Print #nFF, sCsv(k + 1) j = j + 1 Close #nFF Next k End Sub
お礼
ご回答ありがとうございます! いただいたプログラムを参考にさせていただき、 無事解決しました。 本当にありがとうございます!