Excel VBA質問箱 IV

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

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


12514 / 13645 ツリー ←次へ | 前へ→

【10134】Do While文の違い クレア 04/1/8(木) 16:33 質問
【10137】Re:Do While文の違い ichinose 04/1/8(木) 17:26 回答
【10149】Re:Do While文の違い クレア 04/1/9(金) 9:12 お礼

【10134】Do While文の違い
質問  クレア  - 04/1/8(木) 16:33 -

引用なし
パスワード
   Do While Len(Cells(sYLINE, 4).Value = Cells(sTYLINE, 4).Value)
 If (Cells(sYLINE, 4).Value = "") Then          
   Exit Do
 End If
 sYLINE = sYLINE + 1
Loop

上記のループのと下記のループでは、「While」の後ろに「Len」があるか
ないかの違いだけなのですが、どちらも動きます。
どう違うのでしょうか?

Do While (Cells(sYLINE, 4).Value = Cells(sTYLINE, 4).Value)
 If (Cells(sYLINE, 4).Value = "") Then          
   Exit Do
 End If
 sYLINE = sYLINE + 1
Loop


お分かりの方、是非その違いを教えてください。

【10137】Re:Do While文の違い
回答  ichinose  - 04/1/8(木) 17:26 -

引用なし
パスワード
   ▼クレア さん:
こんにちは。
test
>Do While Len(Cells(sYLINE, 4).Value = Cells(sTYLINE, 4).Value)
> If (Cells(sYLINE, 4).Value = "") Then          
>   Exit Do
> End If
> sYLINE = sYLINE + 1
>Loop
>
test2
>Do While (Cells(sYLINE, 4).Value = Cells(sTYLINE, 4).Value)
> If (Cells(sYLINE, 4).Value = "") Then          
>   Exit Do
> End If
> sYLINE = sYLINE + 1
>Loop
微妙に違うと思いますよ。


Do While 〜 Loopは、
「While以下の条件がFalseではない間、ループする」というロジックみたいです。

testの「Len(Cells(sYLINE, 4).Value = Cells(sTYLINE, 4).Value)」
は、

"True"の場合、長さは4で"FALSE"の場合は、5。

どっちもFalse(0)でないから、出口は、Exit Doしかありません。


test2には、
While以下の条件がFalseの時とExit Doと二つ出口があります。

【10149】Re:Do While文の違い
お礼  クレア  - 04/1/9(金) 9:12 -

引用なし
パスワード
   ▼ichinose さん:
こんにちは。
よくわかりました。
ありがとうございました!

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