Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13831 / 76733 ←次へ | 前へ→

【68404】Re:複数のCSVファイルの総行数を集計する際に時間がかかる
お礼  ひよっこ  - 11/3/3(木) 10:02 -

引用なし
パスワード
   ▼kanabun さん:
>▼ひよっこ さん:
>
>よこからスミマセンm(_ _)m
>
>>        With FSO.OpenTextFile(TargetFile, 8)
>>          '複数ファイルがある場合、ファイルの総行数を集計する
>>          gCnt = gCnt + Line ★
>>          .Close
>>        End With
>ここのところは
>        With FSO.OpenTextFile(TargetFile, 8)
>          '複数ファイルがある場合、ファイルの総行数を集計する
>          gCnt = gCnt + .Line - 1 ★
>          .Close
>        End With
>ではないでしょうか?

ああ・・・CSVは-1するのでした。最後の行の改行を忘れていました。
ご指摘ありがとうございます><


>>読み込むファイルのサイズは平均的に5・6Mと
>5・6Mものファイルだったら時間はそれ相応にかかると思いますよ。

やはりそうですよね・・・1Mのときもあれば9M以上のときもあります。
5〜6Mを複数ファイル分集計しているので我慢ということですね:

>あと、
>For〜Nextループの中で 何度も
>>  Set FSO = CreateObject("Scripting.FileSystemObject")
>     … … …
>>  Set FSO = Nothing
>
>やっていますが、その必要はないので、
>Loopの外に出せば 若干効率よくなると思います。

こちらもご指摘ありがとうございます。
ループの外に出しまして以下のコードとしました。

'プログレスバー進捗用処理
  '行数格納用変数
  Dim gCnt As Long
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Dim TargetFile As String
  
  '複数ファイルの場合には、ファイル数分ループさせ、全ファイルの行数を取得する
  For fcount = 1 To UBound(UserForm1.FileName)

    TargetFile = UserForm1.FileName(fcount)
      
      'ファイルの存在確認(存在しなければ処理を中断する)
      If Dir(UserForm1.FileName(fcount)) = "" Or TargetFile = "False" Then
      
        MsgBox TargetFile & vbCrLf & "を取得できませんでした。" _
        & vbCrLf & "ファイルを確認して下さい", vbCritical, "ファイル取得失敗"
        Unload Me
        Unload UserForm1
        Exit Sub
      End If
      
      'ファイルを書き込みモードで読み込む
        With FSO.OpenTextFile(TargetFile, 8)
          gCnt = gCnt + .Line - 1
          .Close
        End With
  Next
  
  ProgressBar1.Max = gCnt
  Set FSO = Nothing

しばらくはこのコードでいこうと思います。アドバイスありがとうございました!

3 hits

【68395】複数のCSVファイルの総行数を集計する際に時間がかかる ひよっこ 11/3/2(水) 17:32 質問
【68396】Re:複数のCSVファイルの総行数を集計する際... SK63 11/3/2(水) 19:06 発言
【68402】Re:複数のCSVファイルの総行数を集計する際... ひよっこ 11/3/3(木) 9:57 お礼
【68406】Re:複数のCSVファイルの総行数を集計する際... ひよっこ 11/3/3(木) 10:13 発言
【68400】Re:複数のCSVファイルの総行数を集計する際... kanabun 11/3/2(水) 21:25 発言
【68404】Re:複数のCSVファイルの総行数を集計する際... ひよっこ 11/3/3(木) 10:02 お礼
【68408】Re:複数のCSVファイルの総行数を集計する際... kanabun 11/3/3(木) 11:33 発言
【68411】Re:複数のCSVファイルの総行数を集計する際... ひよっこ 11/3/3(木) 13:17 お礼
【68413】Re:複数のCSVファイルの総行数を集計する際... Yuki 11/3/3(木) 14:12 発言
【68420】Re:複数のCSVファイルの総行数を集計する際... ひよっこ 11/3/3(木) 17:32 お礼
【68403】Re:複数のCSVファイルの総行数を集計する際... Jaka 11/3/3(木) 9:57 発言
【68405】Re:複数のCSVファイルの総行数を集計する際... ひよっこ 11/3/3(木) 10:11 お礼

13831 / 76733 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free