| すぐマク YNxv9c0 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| For...Nextステートメントのカウンタの値は? |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
「パソコンのところで寝てしまった」とのこと、コツコツ勉強している姿が目に浮かびます。質問は 2つですね。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ご質問の主旨が、単純にマクロの実行を指定した時間だけ停止させたいのでしたら、Waitメソッドを使う方法があります。 2. 一番最初はなぜ答えがゼロにならないか? 結論から言います。 1回目のループでマクロの 5行目と 6行目の For...Next文の実行が終ると変数「数」の値が 600000になります。よって、7行目の Cells(行, 列).Value = 数 - 599999 では、セルに 1がセットされます。なぜ、そうなるのでしょうか? For...Next ステートメント Forキーワードと Nextキーワードで囲まれた一連のステートメントを指定した回数だけ繰り返す(ループする)フロー制御ステートメントです。 構文 For counter = start To end [Step step] | Next [counter] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ループを開始した直後のカウンタの値が引数 start と同じであることは、容易に理解できます。しかし、ループを終了した直後の値は、どうなるのでしょうか。 ループの実行は次のように制御されます。 引数 step の値が、 正の数または 0 なら counter <= end 、 負の数なら counter >= end つまり、カウンタの値が引数end の値と等しい間はループするので、ループを終了した直後の値としては、引数end の値よりも引数 step の値だけ大きい(または小さい)値となります。 答が 1になる理由がわかりましたか。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |