- ベストアンサー
VBAでのWhile文の途中での抜け方
- VBAのWhile文で途中で抜ける方法はありませんか?
- 現在、While文を使用していますが、途中で抜けたいと考えています。
- While文とWend文を組み合わせて使用していますが、エラーが発生してしまいます。Exit Sub文を使用するとエラーは解消されますが、While文の途中で抜ける方法はないのでしょうか?また、While文の使用について、ネット上で議論されていることがあるようですが、現在はあまり使用しない方が良いのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Exit Do を利用する場合は、do whileが必須です。 While ~ Wendがあるのは過去からの互換性の確保のためのようです。ということは、将来は利用できなくなるという意味です。 While ~ Wendで抜ける場合は、goto文を使って抜けます。 例 While a<>0 if b = 0 then goto WNext (ループ内の処理) Wend WNext: (次の処理) あと、While~Wendをdo whileに置き換えるには一括置換で置き換えればいいので、別段時間がかかることはないと思いますよ。
その他の回答 (2)
- hige_082
- ベストアンサー率50% (379/747)
>やはりWhile ~ Wendでは途中で抜けられないのでしょうか? 抜けられますよね????????????????? >検索したところ >http://questionbox.jp.msn.com/qa2600400.html >がヒットしたのですが リンク先は見たんですよね? 答えが出てると思うのですが? >出来れば途中で抜ける方方が知りたいです。 Sub test1() Dim i As Long, j As Long While i < 5 If j = 1 Then i = 5 i = i + 1 Wend ’続きの処理 End Sub ですがダメなの? 参考?まで
お礼
例えが悪かったです。有難うございました。
- 2kaku34
- ベストアンサー率30% (101/329)
プログラムのことは、よく分かりませんが。(とくに文法) 初期値は、どうなっているのですか? 変数 i と j との関連が分かりません。 変数 j は、変化しないのですか?たとえば偶数とか、奇数とか。i*2j とか。 i = 1 : j = 100 While i < 5 If j = 0 Then Exit Do Ans = i * 2;guusuu If j = 0 Then Exit Do printf("変数ans = %d" , ans); total = Toal + ans i = i + 1 j = J - 2 Wend printf("変数total = %d" , total);
お礼
すいません。多分例えが悪かったです。 有難うございました。
お礼
将来は利用できなくなるのですね。 なるべく使わないように心がけます。 それに一括置換で対応できそうです。 有難うございました。