シュミレーションの結果が合わないのですが
エクセル 列 約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も見ています
-
ちょっと先の未来クイズ第2問
9月9日(月)に発表される「第3回子どもマネー川柳」に入賞する川柳を考えてこちらに投稿してください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
VBAの再計算が反映されない件につきまして
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
CRC8を教えてください
-
排他的論理和 BCC(水平パリテ...
-
ホームページビルダーで料金の...
-
計算量の少ないn乗根の求め方
-
変化させるセルが変化しない
-
0xf0=256?
-
C言語についてです。 再帰を使...
-
エクセル VBAで 再計算を...
-
移動平均を計算するプログラム
-
C言語について 下の画像は do-w...
-
OpenGLでの軸回転について
-
C言語初心者。静磁場の計算。台...
-
傾いた四角形内の範囲の条件式
-
CRCについて教えてください
-
C言語で N行*M列 の逆行列を求...
-
VB6.0でのバイナリデータの扱い...
-
VBAでの勤務時間計算
-
Androidでのメトロノーム開発
-
Xwindowのプログラミング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
なぜオーバーフローになるので...
-
VB6で正確なミリ秒を計測したい...
-
VBでReplace
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
CRC8を教えてください
-
VBAで関数をつくる
-
Excel VBAの残業時間の合計計算...
-
等高線を計算したい
おすすめ情報