- ベストアンサー
VBA DO~LOOPのネスト方法について
エクセルマクロの構文でDO~LOOPのネストを行った際に、EXIT DOで飛び出した後のLOOP条件が無効になるようです。どなたかご教授願います。 Sub TEST() y = 1 Do Do If y = 2 Then Exit Do End If y = y + 1 Loop Loop While y = 3 End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
無効にはならないと思いますが? Loop While y = 3 ですから、yが3ではないのでループを抜けているだけです。 もしかしてやりたいのは Loop While y < 3 ですか?
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようにすればよいでしょう。 Sub TEST() y = 0 Do y = y + 1 If y = 2 Then y = y + 1 End If 計算したいことなど Loop While y <= 3 End Sub けれでyが2以外のケースについて計算が行われますね。
お礼
早速の回答ありがとうございました。 whileの使い方を勘違いしていたようです。(#^.^#)
- chie65536(@chie65535)
- ベストアンサー率44% (8742/19841)
プログラムは「[数字]」で示した順に実行されます。 y = 1 [1] Do [2] Do [3][8] If y = 2 Then [4][9] Exit Do [10] End If [5] y = y + 1 [6] Loop [7] Loop While y = 3 [11] End Sub [12] [11]に来た時点で、yは2ですから、外側のループは終了してしまいます。
お礼
早速の回答ありがとうございました。 whileの使い方を勘違いしていたようです。(#^.^#)
お礼
早速の回答ありがとうございました。 whileの使い方を勘違いしていたようです。(#^.^#)