- ベストアンサー
VBAで数式の入ったシートコピーで。。。
VBAにてシートコピーに要する時間が長くて(10分以上)悩んでおります。ご存知の方がいらっしゃいましたら力を貸していただけないでしょうか?よろしくお願いいたします。 Bookの構成といたしまして標準モジュールに数式文字列を評価するものを かいてあります。 Function Eval(ByVal expr As String) Eval = Evaluate(expr) End Function ・Sheet1には、様々な経理データを入れるようにしてあります。 そこに入れた値などを元にセル名を作るように書いてあります。 例)A1に”1”という値でB1に”2”という値が入っていればA2のセル名を”12” とします。 ・Sheet2には予めセルに=eval(12)の様な数式をいれ評価をしております。 これが1枚のシートに2000くらい数式が入っています。 Sheet1、2ともに特定条件のとき複製を何枚か作ります。 このときすごく時間がかかります。 原因は数式が大量にあるものをコピーするのが原因なのは分かりますが コピー以外の動作が非常に快調なので大きく変えて欲しくないと言われております。 もちろん再計算の停止などはしてあります。 事前に特定条件を作りだしシートを非表示にしておき特定条件のときに表示させるのも 一つの手ではありますが何百枚もシートを隠しておくとファイルサイズがばかでかくなるという 難点もあって躊躇しています。 何分わかりづらい質問で申し訳ありませんが、ご回答いただければ幸いです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
では、僕にも判らないのでそういう場合僕がやるのは、遅いというのがコード実行、特に予測しないコード実行がないかどうかです。シートコピーに時間がかかるとの事なので、そこにブレークポイントを設定してステップ実行してみてください。 次の行に進むでしょうか?
その他の回答 (3)
- khazad-lefty
- ベストアンサー率44% (296/668)
シートコピーは具体的にどういう方法でやっているのでしょうか? (VBAでやっているならそのコードを)
- yokomaya
- ベストアンサー率40% (147/366)
読み落としてました。申し訳ありません。 Application.EnableEvents=False は効果ありませんか?
- yokomaya
- ベストアンサー率40% (147/366)
オプションの自動計算を手動に変えても変化ありませんか?
補足
回答有難うございます。オプションの手動はやってある状態でこれなんですよね・・・
補足
それも効果ないんです。。。