| 
    
     |  | すみません。 不覚にも気づかずに提示されたコードをそのまま使ってしまいました。
 1部修正して、そのまま同じものを再アップ。
 前のコードをそのまま利用すると、
 「なぜ私のPCだけ? Why?」ってな事になります。
 
 予約語を変数やプロシジャー名に使うと上記のようなことになったりするし、誤動作する場合があるかもも知れないので止めましょう。
 
 MsgBox ActiveSheet.Name  .Nameとならずに.nameになる場合も...。
 直し方を知っていたり、気にしなければ良いですけど。
 
 で、修正点
 Const name → Const name_1
 
 以下前のまま。
 
 遅い原因は、これ。
 Cells(r, 1).Value = strREC
 1行読んでは書き込む、と言った感じで1行づつ処理しているからです。
 ある程度配列に溜め込んでから書き出すようにすると、現状よりかなり速くなりますよ。
 
 注)
 Preserveしながら、1行づつ配列を拡張しても良いですが、1次元配列だから書き込み時にTransposeさせないといけません。
 Transposeできる配列の要素数の上限が、5461個までそれ以上になるとエラーになります。
 
 
 Const name_1 = "C:\test.log"
 Dim intFF As Integer      ' FreeFile値
 Dim r As Long
 Dim strREC As String
 Dim 配列() As String
 intFF = FreeFile
 
 Open name_1 For Input As #intFF
 
 Do Until EOF(intFF)
 Line Input #intFF, strREC
 r = 1 + r
 ReDim Preserve 配列(1 To 1, 1 To r)
 配列(1, r) = strREC
 Loop
 Range("A1").Resize(UBound(配列, 2)).Value = Application.Transpose(配列)
 Close #intFF
 Erase 配列
 
 
 他、だいぶ前に書いた奴。
 コードが長すぎて、参考にはならないと思いますが。
 HTTP://www.vbalab.net/vbaqa/data/excel/log/tree_373.htm#1910
 
 コピペする場合の注意点
 HTTP://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=1464;id=
 
 
 >仕事場で使用しているノートPCがあまり高スペックとはいえない為、
 >読み込む速度は1度に約5〜6分で最悪フリーズしてしまうこともあります。
 現時点(2007/10現在)で、「あまり高スペックとはいえない」となると結構なスペックだと思います。
 参考まで、現在のPCスペック10年ぐらい前の K6-2 の500MHz/256MB。
 
 
 |  |