Excel VBAに関する質問掲示板です。
Excel VBA 質問スレッド No.738 (解決済)
CSVファイルのデータ行が一定数を超えていたら分割したい
投稿者 : おばっく 投稿日時 : 2022/05/23(Mon) 10:04:21 OS : Windows 10 EXCEL : Excel 2016
以前、シート状のリストを読み込んで分割する方法を質問し、以下のコードを教えていただきました。
「シートのリストをCSVとして読み込む際にデータ行が一定数を超えていたら分割して実行したい」
データ件数(行数)が5000件以内なら1回で、
データ件数が5000件を超える場合、1~5000、5001~10000、10001~15000行 と5000件単位で
データがなくなるまで処理を繰り返したい。
※分割する各ファイルには1行目に項目を付加する。
これをシート上のリストをCSVに出力ではなく、任意の場所にあるCSVファイルを確認して、データ数が5000件を超えていたら、CSV1、CSV2、・・・というファイルに分割するようにしたいです。
※VBSでも応用できるようにしたいです。
以前、シート状のリストを読み込んで分割する方法を質問し、以下のコードを教えていただきました。
「シートのリストをCSVとして読み込む際にデータ行が一定数を超えていたら分割して実行したい」
データ件数(行数)が5000件以内なら1回で、
データ件数が5000件を超える場合、1~5000、5001~10000、10001~15000行 と5000件単位で
データがなくなるまで処理を繰り返したい。
※分割する各ファイルには1行目に項目を付加する。
Sub OutputCSV()
Dim buf As String, FNames As String
Dim i As Long, j As Long
FNames = Cells(1, 1).Value & "," & Cells(1, 2) & "," & Cells(1, 3) & vbCrLf
buf = FNames
i = 2
j = 1
Do While Cells(i, 1).Value <> ""
buf = buf & Cells(i, 1).Value & "," & Cells(i, 2) & "," & Cells(i, 3) & vbCrLf
If (i - 1) Mod 5000 = 0 Then
Open ThisWorkbook.Path & "\csvDataImportFileUploadBody" & j & ".csv" For Output As #1
Print #1, buf
Close #1
buf = FNames
j = j + 1
End If
i = i + 1
Loop
Open ThisWorkbook.Path & "\csvDataImportFileUploadBody" & j & ".csv" For Output As #1
Print #1, buf
Close #1
End Sub
これをシート上のリストをCSVに出力ではなく、任意の場所にあるCSVファイルを確認して、データ数が5000件を超えていたら、CSV1、CSV2、・・・というファイルに分割するようにしたいです。
※VBSでも応用できるようにしたいです。
[返信 1] Re : CSVファイルのデータ行が一定数を超えていたら分割したい
投稿者 : さんこう 投稿日時 : 2022/05/23(Mon) 11:29:11
参考になれば。
https://www.google.com/search?q=VBA+CSV+%E5%88%86%E5%89%B2+%E8%A1%8C%E6%95%B0
参考になれば。
https://www.google.com/search?q=VBA+CSV+%E5%88%86%E5%89%B2+%E8%A1%8C%E6%95%B0
[返信 2] Re : CSVファイルのデータ行が一定数を超えていたら分割したい
投稿者 : おばっく 投稿日時 : 2022/05/24(Tue) 11:30:44
■[返信 1] さんこうさん(2022-05-23 11:29:11)の記事
> 参考になれば。
>
> https://www.google.com/search?q=VBA+CSV+%E5%88%86%E5%89%B2+%E8%A1%8C%E6%95%B0
>
参考にさせていただきます。
■[返信 1] さんこうさん(2022-05-23 11:29:11)の記事
> 参考になれば。
>
> https://www.google.com/search?q=VBA+CSV+%E5%88%86%E5%89%B2+%E8%A1%8C%E6%95%B0
>
参考にさせていただきます。
[返信 3] Re : CSVファイルのデータ行が一定数を超えていたら分割したい
投稿者 : おばっく 投稿日時 : 2022/05/24(Tue) 16:49:58
■[返信 2] おばっくさん(2022-05-24 11:30:44)の記事
> ■[返信 1] さんこうさん(2022-05-23 11:29:11)の記事
> > 参考になれば。
> >
> > https://www.google.com/search?q=VBA+CSV+%E5%88%86%E5%89%B2+%E8%A1%8C%E6%95%B0
> >
> 参考にさせていただきます。
■[返信 2] おばっくさん(2022-05-24 11:30:44)の記事
> ■[返信 1] さんこうさん(2022-05-23 11:29:11)の記事
> > 参考になれば。
> >
> > https://www.google.com/search?q=VBA+CSV+%E5%88%86%E5%89%B2+%E8%A1%8C%E6%95%B0
> >
> 参考にさせていただきます。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
返信入力フォーム
( 処理日時 : 2022-07-07 13:44:52 )