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行目に項目を付加する。

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

[返信 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

参考にさせていただきます。

[返信 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
> >
> 参考にさせていただきます。

当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2022-07-07 13:44:52 )

Page
Top