- ベストアンサー
プログラムでのLOOPについて・・・。
こんにちわっ! 最近VISUAL BASICをはじめたんですけど WHIE条件・DO WHIE条件・DO WHIE条件・LOOP WHIE条件の使い方がよくわかりません。 これらの使い方を教えてください!
- tamatamaneginegi
- お礼率38% (161/423)
- Visual Basic
- 回答数3
- ありがとう数5
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 以下のような違いです。 (1) Do While 条件式 繰り返すステートメント Loop 条件式がTrueである限り、繰り返す。まず条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 (2) Do 繰り返すステートメント Loop While 条件式 条件式がTrueである限り、繰り返す。最初に必ず繰り返し処理を1回だけ行い、その後は条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 (3) Do Until 条件式 繰り返すステートメント Loop 条件式がFalseである限り、繰り返す。まず条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 (4) Do 繰り返すステートメント Loop Until 条件式 条件式がFalseである限り、繰り返す。最初に必ず繰り返し処理を1回だけ行い、その後は条件式の評価を行ったのち、繰り返し処理をするかどうか判断する。 まとめますと、Whileの方は条件式がTrueである限り繰り返し、UntilはFalseである限り繰り返します。 そして、WhileやUntilが前にある場合はまず条件式の評価を行い、後ろにある場合は、必ず1回は繰り返し処理を行います。 場合によって1回も繰り返し処理をしたくない場合は前に条件式を置き、1回は必ず繰り返し処理をさせたい場合は後ろに置きます。 わかりにくかったらすみません。 では。
その他の回答 (2)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
本題と少し離れてしまいますが・・・ 「While~Wend」というのはあまり本に出てないので、ぼく個人の論理ですが、補足させていただきます。 (1)「While~Wend」のHELP While condition [statements] Wend (2)「Do~Loop」のHELP Do [{While | Until} condition] [statements] [Exit Do] [statements] Loop 何が違うかというと Exit Do でループを抜けることができる/できない という差があります。 ちなみにですが・・・ C言語では While (condition){ [statements] } と先ほどの(1)の記述と似たものがあります。 しかしC言語には、Exit DoにかわるBreakというのがあります。 しかしVBの「While~Wend」ではLoopを抜ける命令がありません。 もちろんGoto文で抜けることができますが、ループを抜けるだけのGoto文は好ましくありません。 どちらのループもループ内の処理が同じであれば、処理スピードは一緒です。(計測しました) であるならば、VBではDo~Loopで処理した方がメンテナンスを行いやすいと思います。
お礼
回答ありがとうございました! まだ初めて間もないのでこれからもいろいろと 聞く機会が多くなるけど、これからもよろしくお願いします! もしよければ、いいVBの本があったら教えてください! お願いします!
- urk
- ベストアンサー率33% (18/53)
説明は#1のmaruru01さんのが有りますので、サンプルで。 VBのHelpにもっといいサンプルいっぱいあるのでそっちの方がもっといいですけど。 ========================================= sub test1() dim i as long Dim Moji AS String open "c:\sutoexec.bat" for input as #1 while not EOF(1) line input #1,Moji Print Moji wend close #1 end sub
お礼
回答ありがとうございます! そういえば、HELPがついてましたのわすれてました!(笑 参考にさせてもらいます! 本当にありがとうございました!
関連するQ&A
- Exit Doで二つのloopを抜けるには?
Do Do For Each If 値 = "" Then Exit Do End If Next Loop Until 条件1 Loop Until 条件2 のようなネストをした場合、Exit Doでloopを抜ける時、条件1と条件2のどちらに移動するのですか? もし条件1に移動する場合、条件2を抜けたいのならどうすればいいのでしょうか? Exit Do Do みたいな事がしたいです。
- ベストアンサー
- その他MS Office製品
- Do..Loopステートメントの使い方について
現在、入門書を画面で確認しながら ExcelVBAの勉強をしています。 Do...Loopで躓いてしまいました。 Do...Loopステートメントの種類は 条件を満たすまでループするもの Do Until...Loop(ループの前で条件判断) Do...Loop Until(ループの後で条件判断) 条件を満たす間はループするもの Do While...Loop(ループの前で条件判断) Do...Loop While(ループの後で条件判断) とあって、 例えば、A1からA7まで文字が入力されていて 空白のセルになるまで太文字にするとしたら、 ループの前に条件判断していると A1が空白だと処理はされず ループの後で条件判断すると A1が空白でも処理はされる とありました。 とすると、 条件判断はループ後にした方が良いと言う事なのでしょうか。 (空白でも処理してくれるので) 自分が処理したいものが ループ「後」にするのか又は ループ「前」にするのか どのように判断すれば良いのかと言うことと、 また、 条件を満たすUntil(まで)とWhile(間) どちらを使用すれば良いのかの判断方法もわかりません。 超初心者の質問内容で申し訳ありません。 VBAって面白いなぁと思い始めたところで なんとか理解したいので 教えていただけると大変助かります。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Do...Loopにつてご教授ください
Visual Basicの課題で、 3+3²+3³+・・・3n乗で、500から50000の間に入る数字は 何個あるか?を求めるアプリを作らなければいけないのですが、 Do...Loop構造の繰り返し処理が理解できていないために解答 することができません。 解答と考え方をご教授いただけば大変助かります。 どうぞよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- DO~LOOP でのLOOPの抜け方
コマンドボタンを押して(スタートボタン)DO~LOOPで実行しているときにストップコマンドボタンを押してストップさせるときの LOOPの抜け方がわかりません。すみませんがよろしくお願いします。
- ベストアンサー
- Visual Basic
- 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
- ベストアンサー
- Visual Basic
- "DO LOOP"
テキストボックスに数値を入れると Do Loopでその数値の整数部分が何桁かを計算して、 ラベルに表示させるプログラムを作りたいです。 その時の、終了条件がわかりません。 (出来れば繰り返し実行されるステートメントお願いします。) 教えてください。お願いします。
- 締切済み
- Visual Basic
- 【VBA】DoUntil Loopを1度のみ実行
いつもお世話になっております。 Excel2003を使用しております。 「この条件になるまで続行」というのは Do Until Loop だと思うのですが、 ループをしたくないけれど Do Until Loop を利用したい場合(条件になったら即終了したい) Do Until Flag=True 実行したいこと 実行したいこと2 実行したいこと3 Exit do Loop また、やりたいこととしては、 FlagがTrue になったら、プロシージャから抜けたいと思っています。 その場合は、 Do Until Flag=True 実行したいこと 実行したいこと2 実行したいこと3 Exit do Loop If Flag=True Then Exit sub End if このように、別々?に書く以外に方法はないでしょうか? 出来れば、簡単なIF文で実行できないかと思ったのですが… 話がごちゃごちゃしていて分かりにくいので、質問事項のみまとめますと、 ● 条件になったら終了させる。 これは、Do~Loop 、For Next のみの動作でしょうか? ● ループから抜けると同時にSubを終了させるには、ループの外にIF文を書くしかない? 以上、よろしくお願い致します。
- 締切済み
- Excel(エクセル)
- マクロのプログラミングで Do Loopステートメントです
明後日学校の情報の授業でエクセルのマクロを使ってプログラミングするんですが語句について教えてください エクセルのマクロなんですが Do Loopスタートメントって言うのをやります そこでコマンドの意味を教えてほしいんです 明後日なんでなるべく早くお願いします 今回のコマンド(と、バリエーション)って書いてあります 1) dim i as→ 2) Do While 条件式 処理 Loop 3) Do Until 条件式 処理 Loop 4) i=i+1 5)Integer この5つです お願いしますm(_ _)m
- 締切済み
- その他(プログラミング・開発)
- Do ~ loop until [VBA]
Do 命令文 Loop Until 条件式 について質問なのですが、条件式には複数の条件を指定することは出来るのでしょうか? 例えば、変数mが100より大きく、変数nと同じでない、という2つの条件を指定したいときは Loop Until m >= 100 and m <> n もしくは Loop Until m >= 100 and <> n でしょうか? また、上記の様な条件式でOKだとしたら、andで結べる条件に制限数はありますか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- Do~Loopステートメント
Do~Loopステートメントで使わな方が良いステートメントとは? Do~Loopステートメントで「古いから使わない方がよい」、と言われたことがあるのですが どれの事だか忘れてしまいました。 Sub test() セルのA1~A10に1~10を入力する i = 1 Do While i < 11 Worksheets("Sheet1").Cells(i, 1).Value = i i = i + 1 Loop End Sub これは一般的だから使ってもよいと思います。 Sub test() セルのA1~A10に1~10を入力する i = 1 Do Until i = 11 Worksheets("Sheet1").Cells(i, 1).Value = i i = i + 1 Loop End Sub これもよく見かけます。 Do While,Do Until以外にもloopステートメントってありますか? あと使わない方が良いステートメント、私の勘違いでなければ教えてください。
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございました!だいぶわかりました! けど、いまいちどういうときに繰り返しを使うのかが いまいちわかりません・・・。とにかくがんばってみます!