[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ:計算式をコピーする作業で時間がかかる』(よ)
お世話になります。 ある処理のマクロを作っているのですが、計算式をコピーする作業に3分ほどかかっているので疑問に思っています。 具体的なコードは下記の通りです。
Range(Cells(2, 13), Cells(2, Range("A2").End(xlToRight).Column)).Select Selection.AutoFill Destination:=Range(Cells(2, 13), Cells(Range("A1").End(xlDown).Row, Range("A1").End(xlToRight).Column)), Type:=xlFillDefault
M2:AA2のセルに、"=IF(ISERROR(VLOOKUP(RC1,DATA2," & 参照列 & ",FALSE)*RC12)=TRUE,0,VLOOKUP(RC1,DATA2," & 参照列 & ",FALSE)*RC12)" という計算式が入っていまして、それを約6000行くらいまでオートフィルする作業です。 AA列、6000行というのは毎回変わるため、最終行、最終列ということで上記のようにしてみました。 この部分でステータスバーに再計算という文字が出て3分ほどかかります。 手で作業するとそれほど時間は掛からないのですが、こういうものなのでしょうか? 最近PCの調子が悪いのでそのせいかな・・なんて思ったりもするのですが、もし何かわかる方がいらっしゃいましたらぜひ教えてください。
参考になるか分かりませんが、私の場合 再計算するから遅いんだという考えで、 一度計算を手動にしてセルのコピーが終わった段階で自動計算にしてます。 つまり、
application.calculation=xlmanual
計算式コピーマクロ
application.calculation=xlautomatic
てな具合・・・
そうすれば、コピー(オートフィル)が終わったあと計算開始!て感じになります。
いかがでしょう? (しんちゃん)
しんちゃんさん、お礼が遅くなりましたが、ありがとうございます! さっそく試してみました。 application.calculation=xlmanual のところにブレークポイントを設定してF8で進むと 確かにすごく早くなりました。 ただ、ブレークポイントを設定せずに通しで実行するとあまり変わらないようです。 他にどこか直した方が良い点があるのでしょうか?(よ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.