Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


59192 / 76732 ←次へ | 前へ→

【22251】Re:三角形の頂点の座標は?
回答  bykin  - 05/2/13(日) 17:38 -

引用なし
パスワード
   こんにちわ。

>Sub 移動開始()やfunctionを実行しているときに、FlgがFalseになることで
>一旦プロシージャを抜けるというのが、理解できません。

まず、このフラグがTrueになってるのはどういう状態のときか・・・ってことを
考えればええんです。
提示したコードの中で Flg = True が書いてあるのは1箇所だけ。
Sub 移動開始()の部分ですわな。
Flg = True にしてから「頂点の移動」っていうFunctionを実行してます。
この頂点の移動が中断されることなく終了したら、Functionの最後で
Flg = False で元に戻してます。
つまり、頂点を移動させる処理のあいだだけフラグが立つわけです。
これが基本やね。

前もって「三角形の描画」で、CurrentPosを0に設定してるから、最初に
「移動開始」を実行するときは
CurrentPos = 頂点の移動(CurrentPos) → CurrentPos = 頂点の移動(0)
ということになります。
このまま中断がなければ、CurrentPosは使わずにそのままコードは終了しますわなー
使う必要がないからです。

・・・で、中断する場合は別のマクロ(一時停止)がループに割り込んで、
Flg = False に設定してしまうので、ループ内の次の判定では
中断したループの回目を戻り値に設定して、Functionは終了します。
この戻り値がCurrentPosに代入されるんです。
再開用のデータを記憶させてるわけです。
再開するときはこのデータを「頂点の移動」に渡すことになるんやね。
CurrentPos = 頂点の移動(CurrentPos) → CurrentPos = 頂点の移動(ループ再開用カウンタの値)
ってことです。
こうすると、再開時の頂点位置を正しく設定したうえで、
まだ済んでいないループの回数分だけ頂点が移動することになります。

以上のような理由から、「頂点を元に戻す」ではCurrentPosを最初の状態の0に戻してます。

また、各プロシージャの先頭にフラグの判定が入ってるんは、
実行したらあかん状態のときに実行させないためです。
頂点の移動中に図の削除なんかを実行したらマズいでっしゃろ?

こんな説明でよろしいでっか?
ほな。
2 hits

【22204】三角形の頂点の座標は? ponpon 05/2/11(金) 12:46 質問
【22205】Re:三角形の頂点の座標は? V 05/2/11(金) 13:26 発言
【22206】Re:三角形の頂点の座標は? bykin 05/2/11(金) 14:31 回答
【22207】Re:三角形の頂点の座標は? bykin 05/2/11(金) 14:40 発言
【22213】Re:三角形の頂点の座標は? ponpon 05/2/11(金) 20:05 お礼
【22248】Re:三角形の頂点の座標は? ponpon 05/2/13(日) 13:01 質問
【22249】Re:三角形の頂点の座標は? bykin 05/2/13(日) 14:01 回答
【22250】Re:三角形の頂点の座標は? ponpon 05/2/13(日) 15:19 発言
【22251】Re:三角形の頂点の座標は? bykin 05/2/13(日) 17:38 回答
【22252】Re:三角形の頂点の座標は? ponpon 05/2/13(日) 18:28 お礼
【22253】Re:三角形の頂点の座標は? bykin 05/2/13(日) 18:36 回答
【22254】Re:三角形の頂点の座標は? ponpon 05/2/13(日) 19:07 お礼
【22256】Re:三角形の頂点の座標は? bykin 05/2/13(日) 21:52 発言
【22425】Re:三角形の頂点の座標は? ponpon 05/2/19(土) 10:02 お礼

59192 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free