Excel VBA質問箱 IV

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

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


10789 / 13644 ツリー ←次へ | 前へ→

【19801】CSVファイルの高速読込について BOBO 04/11/17(水) 14:40 質問[未読]
【19811】Re:CSVファイルの高速読込について Jaka 04/11/17(水) 15:17 回答[未読]
【19898】Re:CSVファイルの高速読込について BOBO 04/11/18(木) 19:35 質問[未読]
【19906】Re:CSVファイルの高速読込について ちゃっぴ 04/11/18(木) 23:06 回答[未読]
【19922】Re:CSVファイルの高速読込について BOBO 04/11/19(金) 11:15 お礼[未読]

【19801】CSVファイルの高速読込について
質問  BOBO  - 04/11/17(水) 14:40 -

引用なし
パスワード
   初めて書き込ませていただきます。
下記質問させていただきます。ご回答いただければ幸いです。

<やりたいこと>
(1) Excelに「Sheet1」「Sheet2」を準備
(2) 「Sheet1」にコマンドボタン「Read」を準備
(3) 「Sheet1」のセルA1にCSVファイル名を記載しておく
    ※CSVファイルの行数・列数は不定です
(3) 「Read」ボタンを押すと、セルA1に書かれた場所にあるCSVファイルを
   読み込み、全データを「Sheet2」に表示

<質問>
 上記(3)において、私が作成した現在の処理は、下記のとおりです。
   Open FileName For Input As #1
   Do While Not EOF(1)
     Line Input #1, ReadLineBuf
     LineArray = Split(ReadLineBuf, ",")
     For i = 0 To UBound(LineArray)
       Sheets("Sheet2").Cells(gLineCnt + 1, i + 1) = LineArray(i)
     Next i
     gLineCnt = gLineCnt + 1
   Loop

しかしCSVファイルの行数が多いと、処理に時間がかかってしまいます。
なんとか高速化できる方法は、他にありますでしょうか?

以上。
どうぞよろしくお願いします。

【19811】Re:CSVファイルの高速読込について
回答  Jaka  - 04/11/17(水) 15:17 -

引用なし
パスワード
   こんにちは。

こんな感じに2次元配列にして、配列と同じサイズのセル範囲に配列後と入れてやれば、多少は速くなると思います。
配列要素数は、10000個以内でグルグルまわしてください。

注)
配列を大きく作って一括で書き込もうとしない事。
書き込み時にフリーズした感じになってしまいます。
反応がありません状態でも、実は生きてたりして、1時間後に処理が終わったり。
(1時間も待ってられないので、ほとんど確認を取ってません。)

他のは、「CSV テキスト」で検索してみてください。

【19898】Re:CSVファイルの高速読込について
質問  BOBO  - 04/11/18(木) 19:35 -

引用なし
パスワード
   ▼Jaka さん:

お答えありがとうございます。
返信送れて申し訳ありません。

>こんな感じに2次元配列にして、配列と同じサイズのセル範囲に配列後と入れてやれば、多少は速くなると思います。

「配列と同じサイズのセル範囲に配列ごと入れる」とは
ループでまわして入れるのでしょうか?
それともほかに良い方法があるのでしょうか?

再度の質問お許し下さい。
よろしくお願いします。

【19906】Re:CSVファイルの高速読込について
回答  ちゃっぴ  - 04/11/18(木) 23:06 -

引用なし
パスワード
   実行してみてください。

Dim vntData(1 To 10000, 1 To 100) As Varinat
Dim i As long, j As Long

For i = 1 To 10000
  For j = 1 to 100
    vntData(i, j) = i + j
  Next j
Next i

Cells(1, 1).Resize(10000, 100) = vntData

【19922】Re:CSVファイルの高速読込について
お礼  BOBO  - 04/11/19(金) 11:15 -

引用なし
パスワード
   格段に早くなりました。
ありがとうございました。

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