[[20100111131811]] 『マクロ実行の速度が極端に遅い』(hal) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ実行の速度が極端に遅い』(hal)

エクセルで簡単なマクロを作成したのですが、他のエクセルブックを開いている場合(マクロを作成したブックと他のブックの2つ)と他のブックを開いていない場合(マクロを作成したブックのみ)で比較すると、他のブックを開いている場合の方がマクロ実行の速度が極端に遅く(1秒と3分くらいの差)なります。是正方法を教えて下さい。使用しているエクセルは2003版で、osはvistaです。


 どんなマクロのどこを?
 (seiya)

返答ありがとうございます。1年分の時間履歴の株価データを収めたシートから指定した日時のデータを別シートへ書き出すだけの下記のマクロです。そのデータを書き出す速度が何故か極端に遅くなってしまいます。

Sub Macro1()
'

Dim I As Long, K As Long, J As Integer
Dim D1 As Date
Dim T2 As Date

I1 = 1
D1 = Worksheets("SHEET1").Cells(1, 1)

For I = 1 To 50000
D2 = Worksheets("3MIN").Cells(I, 1)

  If D2 = D1 Then
    T2 = Worksheets("3MIN").Cells(I, 2)
        If T2 = "9:00:00" Then
        J = 1
        For K = I To I + 94
         Worksheets("SHEET1").Cells(J + 3, 1) = Worksheets("3MIN").Cells(K, 2)
         Worksheets("SHEET1").Cells(J + 3, 2) = Worksheets("3MIN").Cells(K, 3)
         Worksheets("SHEET1").Cells(J + 3, 3) = Worksheets("3MIN").Cells(K, 4)
         Worksheets("SHEET1").Cells(J + 3, 4) = Worksheets("3MIN").Cells(K, 5)
         Worksheets("SHEET1").Cells(J + 3, 5) = Worksheets("3MIN").Cells(K, 6)
         J = J + 1
        Next K
        Exit For

    End If

(hal)


 > 他のブックを開いている場合の方がマクロ実行の速度が極端に遅く(1秒と3分くらいの差)なります。

 [ツール(T)]メニュー → [オプション(O)...] → [計算方法]が[自動(A)] にチェックされている場合
 [手動(M)]にチェックを入れてみる
 とどうなりますか?

 マクロ実行が終われば、[自動(A)]に戻します。
 この操作で、期待しているとおり動くようになれば、この操作を「マクロの記録」で記録して、
 記録されたコードを現在のコードの処理の最初([手動(M)]にするコード)と最後([自動(A)]に戻す)に記述すればいいと思います。

 (とおりすがり)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.