Excel VBA質問箱 IV

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

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


4218 / 13644 ツリー ←次へ | 前へ→

【57815】多重ループの抜け出しについて あき 08/9/14(日) 19:07 質問[未読]
【57816】Re:多重ループの抜け出しについて kanabun 08/9/14(日) 19:12 発言[未読]
【57817】Re:多重ループの抜け出しについて Hirofumi 08/9/14(日) 19:46 回答[未読]
【57818】Re:多重ループの抜け出しについて あき 08/9/14(日) 21:20 お礼[未読]
【57835】Re:多重ループの抜け出しについて ひげくま 08/9/16(火) 11:20 発言[未読]

【57815】多重ループの抜け出しについて
質問  あき  - 08/9/14(日) 19:07 -

引用なし
パスワード
   以下のように、多重ループを作った時、for c〜next c間にあるexit forでループを抜け出せるのはfor c 〜 next c間だけなのでしょうか?
それとも、for a 〜 next aまで、すべて抜け出せてしまってるわけでしょうか?
素朴な疑問なんですが、回答をご存知の方がいれば、教えてくださいませ。
よろしくお願いします。
sub ループ()
dim a,b,c as variant

for a = 1 to 10
 for b = 1 to 10
  for c = 1 to 10
  exit for
  next c
 next b
next c

end sub

【57816】Re:多重ループの抜け出しについて
発言  kanabun  - 08/9/14(日) 19:12 -

引用なし
パスワード
   ▼あき さん:

> for c〜next c間にあるexit forでループを抜け出せるのは
for 〜 next c の外
です。
for 〜 next bのループは続きます。

それから、ループカウンタ変数ですが、

>dim a,b,c as variant

は、Long型の変数を使うといいです。

Dim a as long, b as long, c as long

のように、変数のあとに必ずデータ型を宣言してください。
Dim a, b, c as long
では、ダメです(最後の cだけ整数型です)
>
>for a = 1 to 10
> for b = 1 to 10
>  for c = 1 to 10
>  exit for
>  next c
> next b
>next c
>
>end sub

【57817】Re:多重ループの抜け出しについて
回答  Hirofumi  - 08/9/14(日) 19:46 -

引用なし
パスワード
   >  以下のように、多重ループを作った時、for c〜next c間にあるexit forでループを抜け出せるのは
>for c 〜 next c間だけなのでしょうか?
>それとも、for a 〜 next aまで、すべて抜け出せてしまってるわけでしょうか?
>素朴な疑問なんですが、回答をご存知の方がいれば、教えてくださいませ。
>よろしくお願いします。

for c 〜 next c間だけです、
ただ、「for a 〜 next a」まで一気に抜ける場合
現在は構造化の為、「Goto」文を使うなと言う事ですが?
私的には、以下の様にします

Sub ループ()

  Dim a As Long, b As Long, c As Long
  
  For a = 1 To 10
    For b = 1 To 10
      For c = 1 To 10
'        Exit For
        GoTo Escape
      Next c
    Next b
  Next a

Escape:

End Sub

【57818】Re:多重ループの抜け出しについて
お礼  あき  - 08/9/14(日) 21:20 -

引用なし
パスワード
   Hirofumi さん、kanabunさん、ご回答どうもです。
質問+注意点まで教えていただき、勉強利なりましたです。
宣言の事やgo toの方法は知りませんでしたので、使う時がくれば、有効に使わせてもらいたいと思っています。 本当にありがとうございました。

【57835】Re:多重ループの抜け出しについて
発言  ひげくま  - 08/9/16(火) 11:20 -

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

各所に msgbox を入れるなり、F8キーでステップ実行するなりして、流れを確認する方法はありますよ。
今後のためにも覚えたほうが良いですね。

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