![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
シュミレーションの結果が合わないのですが
エクセル 列 約70 1パターン6列 の10個と 合計列
行は 約300 300*70= 21.000セル?
セルには 何らかの 式が埋め込まれています。
1パターンの中の列に 手間のかかりそうなのは 1列だけ18行の移動平均があります。他の列は、隣の足し算とか、比較してどうこう・・・(よって 移動平均は 合計10列)
で、このワンパターン に 各パラメーターが有って これを変化させて 再計算して 合計の変化でMAXを 取り出す
プログラムは
c4=0 i4=0 ・・・・10個のパラメーターに初期値代入
この時点で セルの再計算
do
if max<合計セル then
do
Call Sleep(5)
DoEvents
z = z + 1
If z > 5 Then
Exit Do
End If
loop
ここに 入れる? 合計セルが遅れて パラメーターが先行してたら意味ないような??
max=合計セル
記録(max、c4.i4・・・・・・)
endif
c4=c4+1 この時再計算
sleepがないと 秒 10回くらい変化する
21.000セルが 10回計算してるとは 思えないのですが?
if c4>6 then
c4=0
i4=i4+1 この時再計算
if i4>6 then
i4=0
o4=o4+1 この時再計算
10個まで同じロジックが続く
ここに sleep を 入れる??
loop
で、問題は sleep を 入れないとき、計算が進んで、別の保存プログラムにパラメータを入れて合計を見るのですが、記録されたパラメーターと合計が合わないのです。
しかし、
MAXが更新されたときの中にブレークポイントを付けて、ストップ状態で(別のことしてたので、かなり止まってた)、保存プログラムにパラメーター代入、合計確認すると合っていました。
で、知りたいのは
再計算とVBAの整合性は エクセルは 取ってくれないのか?
再計算が完了しようが 途中であろうと、VBAだけ お構いなしに ループするのか
はっきりしてるのは パラメータを弄った 後に Sleep入れるのが 最適なのでしょうが、6*6*6*・・・
の仕事量ですから、ここで 0.5秒取られても 合計時間がかかる。
記録の所だけなら、MAXが更新した時だけですから 時間が早いのですが・・・
この辺の状況、ご存知の方が いらっしゃればご教示ください。
No.2ベストアンサー
- 回答日時:
試したわけではありませんが
http://msdn.microsoft.com/ja-jp/library/ff196047 …
セルに値代入後かな?に
(コードを端折られているので特定できません。)
そちらでお考えになってください。
do while Application.CalculationState <> xlDone
sleep 200
loop
で待機
http://msdn.microsoft.com/ja-jp/library/ff821508 …
を余計なイベントが発生しないように適当なところに挟み込む
(必要があるかどうかは、そちらで確認してください)
あと、位取りに「.」を使うのは止めてください。 21,000
余計なところで思考がストップしてしまいました (^_^;)
日本語環境でないPCでしたらご容赦。
陳謝。
なるほど
do while Application.CalculationState <> xlDone
これは、使えそうです。感謝。
No.1
- 回答日時:
Sleep入れるより、
Application.ScreenUpdating = False
じゃないですか?
Sleep入れて同期とるぐらいなら、
Application.Calculation = xlCalculationManual
で自動計算止めておいて全部VBAで書くとか。
恐縮です。
表示は実行速度上がりますから、やってみます。
それで、タイミングが取れるか・・・
VBAは 無理でしょう。エクセルの再計算機能をなくすわけですから
一つのパラメーターで 1パターン 6*300 と 合計欄 10*300 で4800セル 書き換えるのですから
VBAの実行速度じゃ・・・・
結局 パラメーター1個代入で 4.800セル再計算するわけですが、VBAは 値の代入だけのループ。瞬時。VBAは 再計算完了まで 待ってくれるのでしょうかね
再計算とVBA 連携 取れてるのが? 分からないのですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
C言語について 下の画像は do-w...
-
VBAの再計算が反映されない件に...
-
Visual C++でdebugとreleaseで...
-
Excel VBAの残業時間の合計計算...
-
排他的論理和 BCC(水平パリテ...
-
フォームのテキストコントロー...
-
趣味で「乗換案内」みたいなソ...
-
関数を使わないで日付の計算を...
-
階乗のマクロ
-
引き放し法による除算アルゴリ...
-
C# 計算処理中に実行中ウィン...
-
EXCELなどで「返す」という表現
-
エクセルVBA 他の仕事を止...
-
パソコン
-
傾いた四角形内の範囲の条件式
-
<Java> 平均速度・ペースの算出...
-
CとFORTRANの計算速度はどちら...
-
matlabで計算終了
-
内税の計算式
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
パソコン
-
VBAで関数をつくる
-
階乗のマクロ
-
EXCELなどで「返す」という表現
-
排他的論理和 BCC(水平パリテ...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
VBAの再計算が反映されない件に...
-
引き放し法による除算アルゴリ...
-
モジュラス103の計算とは何でし...
-
Visual C++でdebugとreleaseで...
-
エクセルで特定のセルのみを任...
-
数値計算の高速化 (cos, sin, exp)
-
傾いた四角形内の範囲の条件式
-
VBでReplace
-
骨折リスク評価のFRAXについて...
-
アドオン利率を実質年率に変換
-
入射角反射角
-
C言語についてです。 再帰を使...
おすすめ情報