フォルダにあるCSVファイルの行数を一覧で表示させたいです。
VBAやPowerShellでの方法をググったのですがいまいち上手くいかず、教えていただけると助かります。
ファイル数:約60ファイル(6GB)
行数/1ファイル:50万行〜100万行程度
出力形式は問いません。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
ただの作業依頼はNGです。
https://teratail.com/help/avoid-asking
まず自分で作ったコードを提示しましょう。
失礼いたしました。ルールを理解していなかったようです。
ご指摘ありがとうございました。

回答1件
0
ベストアンサー
CSVファイルを読み込む、Msgboxで行数を出力するマクロです。
ファイルサイズが大きいため、分割してファイルを読み込んでいます。
(int_count = 4 で 2の4乗 つまり16回に分割する設定)
VBA
1'参考サイト 2'VBA でファイルを高速に読み込む | 二律背反 3'http://blog.kouga.net/?eid=102 4' 5'上記サイトの方法で、高速読込とメモリ対策を実装 6' [1] CSVファイルをバイナリデータで高速読込 7' [2] [1]の処理は、メモリ対策でファイル分割 8 9Public Sub Csv_Byte_Read01() 10 Const int_count = 4 'CSV読込時のファイル分割数(2 ^ int_count)を指定 11 Dim openFilename As Variant 12 openFilename = Application.GetOpenFilename("ブック(*.csv),*.csv") 13 If VarType(openFilename) = vbBoolean Then Exit Sub 14 15 Dim num As Integer 16 Dim buf() As Byte 'バイナリデータ処理用 17 Dim str_unicode As String 18 Dim Records() As String 'csv一括読込用の配列 19 Dim rCnt As Long 'ループカウンター 20 Dim dCnt As Long 'ループカウンター 21 22 num = FreeFile 'ファイル番号を取得する 23'************************************************************* 24' バイナリモードで開く 25' 分割読込の場合 For Binary の後に Lock Read が必要 26'************************************************************* 27 Open openFilename For Binary Lock Read As #num 28 Do 29 DoEvents: DoEvents 30 'ファイルの長さを取得し、変数bufの大きさを確保する 31 ReDim buf(LOF(num) \ 2 ^ int_count) 32 'ファイルを変数bufに読み込む 33 Get #num, , buf 34 35 '前回の残りデータを追加。改行コードで区切り、配列に代入 36 Records = Split(str_unicode & StrConv(buf, vbUnicode), vbNewLine) 37 'この配列は行ごとのデータになる。 38 39 Erase buf 40 '最終行はデータ不完全のため別処理 41 For rCnt = LBound(Records) To UBound(Records) - 1 42 dCnt = dCnt + 1 43 '●ここにメイン処理を書く● 44 Next rCnt 45 46 '最終行の処理 47 If UBound(Records) > 0 Then 48 '残ったデータがある場合、次の解析に回す 49 str_unicode = Records(UBound(Records)) 50 Debug.Print Records(UBound(Records)) 51 End If 52 53 Erase Records 54 Loop While Not EOF(num) 55 Close #num 'ファイルを閉じる 56 MsgBox dCnt & "行" 57End Sub
投稿2019/07/21 08:05
総合スコア1065
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。