• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでCSVファイルを分割したい)

VBAでCSVファイルを分割する方法

このQ&Aのポイント
  • VBAを使ってCSVファイルを一定のレコード数ごとに分割する方法について教えてください。他の方法でも構いませんが、VBAを使って実現したいです。
  • サンプルコードやヒントを教えていただけると助かります。
  • 分割する際にヘッダーも含めたいです。例えば、2つのレコードごとに分割する場合、各ファイルにはヘッダー行と2つのデータ行が含まれるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.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

falcon0109
質問者

お礼

ご回答ありがとうございます! いただいたプログラムを参考にさせていただき、 無事解決しました。 本当にありがとうございます!

関連するQ&A