Excel VBA質問箱 IV

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

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


13840 / 76733 ←次へ | 前へ→

【68395】複数のCSVファイルの総行数を集計する際に時間がかかる
質問  ひよっこ  - 11/3/2(水) 17:32 -

引用なし
パスワード
   お世話になります。
社会人1年目のひよっこです。
PGとして入社しましたが現在は別の職種で勤務しております。

現在VBAでCSVファイルを読み込んで検索するツールを作成中です。
中でもプログレスバーを作成していることについて質問です。

ネットで検索し、CSVファイルを書き込みモードで読み込み、.Lineを取得することにより
素早くファイルの行数を取得できるロジックを参考にさせていただきながらコードを書いています。
処理自体はエラー無く走るのですが、どうしてもプログレスバーが表示されるまでに時間がかかってしまうのです。
デバックで処理を1行ずつ進めて確認した所、以下のコードの★マーク箇所で時間がかかるようです。


  'プログレスバー進捗用処理
  'ファイルの総行数格納用変数
  Dim gCnt As Long
  
  '複数ファイルの場合には、ファイルの数分ループさせ、全ファイルの行数を取得する
  For fcount = 1 To UBound(UserForm1.FileName)
    
    Dim FSO As Object, TargetFile As String
    TargetFile = UserForm1.FileName(fcount)
      
      'ファイルの存在確認(存在しなければ処理を中断する)
      If Dir(UserForm1.FileName(fcount)) = "" Or TargetFile = "False" Then
      
        MsgBox TargetFile & vbCrLf & "を取得できませんでした。" _
        & vbCrLf & "ファイルを確認して下さい", vbCritical, "ファイル取得失敗"
        Unload Me
        Exit Sub
      End If
      
      'ファイルを書き込みモードで読み込む
      Set FSO = CreateObject("Scripting.FileSystemObject")
        With FSO.OpenTextFile(TargetFile, 8)
          '複数ファイルがある場合、ファイルの総行数を集計する
          gCnt = gCnt + Line ★
          .Close
        End With

      Set FSO = Nothing
  
  Next
  
  '総行数をプログレスバーのMaxに格納
  ProgressBar.Max = gCnt

読み込むファイルのサイズは平均的に5・6Mと考えていただいて構いません。
ファイル要因でしょうか?それともコードの書き方がおかしいのでしょうか?
くだらない質問で申し訳ないのですが、よろしくお願い致します。

1 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 お礼

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