• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 再計算とVBA の優先順位??)

エクセルの再計算とVBAの優先順位?

このQ&Aのポイント
  • エクセルでシミュレーションを行っていますが、結果が合わない問題があります。
  • エクセルには約70列×300行の計算式があり、その中で特に手間のかかる処理は1列だけです。
  • 再計算とVBAの整合性について疑問があります。再計算が完了していなくてもVBAがループするのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

試したわけではありませんが http://msdn.microsoft.com/ja-jp/library/ff196047.aspx セルに値代入後かな?に (コードを端折られているので特定できません。) そちらでお考えになってください。 do while Application.CalculationState <> xlDone sleep 200 loop で待機 http://msdn.microsoft.com/ja-jp/library/ff821508(v=office.15).aspx を余計なイベントが発生しないように適当なところに挟み込む (必要があるかどうかは、そちらで確認してください) あと、位取りに「.」を使うのは止めてください。 21,000 余計なところで思考がストップしてしまいました (^_^;) 日本語環境でないPCでしたらご容赦。

2014itochan
質問者

お礼

陳謝。 なるほど do while Application.CalculationState <> xlDone これは、使えそうです。感謝。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

Sleep入れるより、 Application.ScreenUpdating = False じゃないですか? Sleep入れて同期とるぐらいなら、 Application.Calculation = xlCalculationManual で自動計算止めておいて全部VBAで書くとか。

2014itochan
質問者

お礼

恐縮です。 表示は実行速度上がりますから、やってみます。 それで、タイミングが取れるか・・・ VBAは 無理でしょう。エクセルの再計算機能をなくすわけですから 一つのパラメーターで 1パターン 6*300 と 合計欄 10*300 で4800セル 書き換えるのですから VBAの実行速度じゃ・・・・ 結局 パラメーター1個代入で 4.800セル再計算するわけですが、VBAは 値の代入だけのループ。瞬時。VBAは 再計算完了まで 待ってくれるのでしょうかね 再計算とVBA 連携 取れてるのが? 分からないのですが

関連するQ&A