Excel VBA質問箱 IV

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

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


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

【34263】連続For ヘブン 06/1/30(月) 9:27 質問[未読]
【34264】Re:連続For Blue 06/1/30(月) 9:43 回答[未読]
【34267】Re:連続For ヘブン 06/1/30(月) 9:58 質問[未読]
【34274】Re:連続For inoue 06/1/30(月) 12:11 発言[未読]
【34276】Re:連続For ichinose 06/1/30(月) 12:38 発言[未読]
【34344】Re:連続For ヘブン 06/2/1(水) 0:56 お礼[未読]

【34263】連続For
質問  ヘブン  - 06/1/30(月) 9:27 -

引用なし
パスワード
   for中に
forを入れていますが、
一番中のfor
で条件にたっしたとき
exit for
で抜けたいのですが、
これは一番中のforしか抜けないので、
外側のforに捕まっちゃいます。
外側のforも抜けるにはどうしたらいいですか?

【34264】Re:連続For
回答  Blue  - 06/1/30(月) 9:43 -

引用なし
パスワード
   一番わかりやすいのはフラグを用いることです・

Dim i As Long, j As Long, bEnd As Boolean

For i = 1 To 10
  For j = 1 To 10
    If i = 5 And j = 5 Then
      bEnd = True
      Exit For
    End If
  Next

  If bEnd Then Exit For
Next

【34267】Re:連続For
質問  ヘブン  - 06/1/30(月) 9:58 -

引用なし
パスワード
   ▼Blue さん:
ありがとうございました♪
とても分かりやすかったです。
失礼します。

【34274】Re:連続For
発言  inoue E-MAILWEB  - 06/1/30(月) 12:11 -

引用なし
パスワード
   Blueさんのサンプルを借用させていただいて、

(1)上位側もUntil達成にしてしまう。
Dim i As Long, j As Long
For i = 1 To 10
  For j = 1 To 10
    If i = 5 And j = 5 Then
      i = 11
      Exit For
    End If
  Next
Next

(2)一方をあえてDoループに変更
Dim i As Long, j As Long
i = 1
Do While i <= 10
  For j = 1 To 10
    If i = 5 And j = 5 Then
      Exit Do
    End If
  Next
  i = i + 1
Loop

などもあります。

【34276】Re:連続For
発言  ichinose  - 06/1/30(月) 12:38 -

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

>for中に
>forを入れていますが、
>一番中のfor
>で条件にたっしたとき
>exit for
>で抜けたいのですが、
>これは一番中のforしか抜けないので、

Goto文論議の例題に良く使われる事例ですね!!

Goto文肯定派からは、


'======================================
Sub test()
  For i = 1 To 10
    For j = 1 To 5
     If i = 5 And j = 5 Then GoTo end_proc
     Next j
    Next i
end_proc:
  MsgBox i & "---" & j
End Sub

この場合のGoto文なら、コードがわかりやすいので良いという事です。
構造化プログラミングがコードのわかりやすさを目的としているのなら
私も否定していません・・・。

但し、VBAでは、Goto文を使ったことはありませんが・・。
(On Error Gotoは除く)

【34344】Re:連続For
お礼  ヘブン  - 06/2/1(水) 0:56 -

引用なし
パスワード
   わかりました。
答えてくださったみなさんありがとうございました

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