
No.1ベストアンサー
- 回答日時:
こんにちは。
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回は必ず繰り返し処理をさせたい場合は後ろに置きます。
わかりにくかったらすみません。
では。
回答ありがとうございました!だいぶわかりました!
けど、いまいちどういうときに繰り返しを使うのかが
いまいちわかりません・・・。とにかくがんばってみます!
No.3
- 回答日時:
本題と少し離れてしまいますが・・・
「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の本があったら教えてください!
お願いします!
No.2
- 回答日時:
説明は#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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
vba textboxへの入力について教...
-
複数のExcelファイルをマージす...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
改行文字「vbCrLf」とは
-
Vba Array関数について教えてく...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】開いているブックの...
-
【VBA】値を変更しながら連続で...
-
VBAの「To」という語句について
-
算術演算子「¥」の意味について
-
以下のプログラムの実行結果は...
-
VB.net 文字列から日付型へ変更...
-
[Excel VBA]特定の条件で文字を...
-
VBA ユーザーフォーム ボタンク...
-
ワードの図形にマクロを登録で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
複数のExcelファイルをマージす...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
Vba Array関数について教えてく...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】開いているブックの...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
VBA 入力箇所指定方法
-
[VB.net] ボタン(Flat)のEnable...
-
VBAでセルの書式を変えずに文字...
-
vb.net(vs2022)のtextboxのデザ...
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
おすすめ情報