|
▼ノリ さん:
>はじめまして。
>
>以下のようにテキストファイルの内容をワークシート内に写すマクロを作成しました。
>
>Option Explicit
>Sub TextRead()
> Const name = "C:\test.log"
> Dim intFF As Integer ' FreeFile値
> Dim r As Long
> Dim strREC As String
>
> intFF = FreeFile
>
> Open name For Input As #intFF
> r = 1
>
> Do Until EOF(intFF)
>
> Line Input #intFF, strREC
> Cells(r, 1).Value = strREC
> r = r + 1
> Loop
>
> Close #intFF
>End Sub
>
>
>このコードで実行はできるのですが、いかんせん読み込むファイルが
>行にすると約3000行、600KB近くあるので
>仕事場で使用しているノートPCがあまり高スペックとはいえない為、
>読み込む速度は1度に約5〜6分で最悪フリーズしてしまうこともあります。
>
>画面表示をさせないコードを入れてみたりしたのですが
>実行速度はあまり変わらず。
>
>
>もし、もっと高速でCPUに負担の少ないコードが作れるのであれば
>是非教えていただきたいです。
>
>条件としては、
>・テキストファイル内の1行ずつを読み、シート内の1つずつのセルに格納する。
>
>ことのみです。
>
>
>無知な故、お恥ずかしい限りではございますが
>ご教授の程よろしくお願いいたします。
3000行程度で、5,6分もかかるというのは遅すぎですね・・・
ReadAllで読み込んで一気に書き出すと少し早くなるかもしれませんが、
PCのスペックが低いと 逆に遅くなるかも。
↓のあたりはチェックしてみましたか?
・関数の再計算がされている
・Worksheetのイベントを設定している
|
|