「While…Wend」を「Do…Loop」に書き換える練習問題を10問用意しました。
それぞれ「元のWhile…Wendコード」と「書き換え課題」を提示します。解答は自分でDo…Loopに変換してみてください。
練習問題10問
1. 1から10までの数を表示
Dim i As Integer
i = 1
While i <= 10
Debug.Print i
i = i + 1
Wend
VB👉 Do…Loopに書き換えよ(先判定/後判定どちらでも可)
2. 2から100まで偶数を表示
Dim n As Integer
n = 2
While n <= 100
Debug.Print n
n = n + 2
Wend
VB3. 合計が100を超えるまで足し続ける
Dim sum As Integer, x As Integer
sum = 0: x = 1
While sum <= 100
sum = sum + x
x = x + 1
Wend
Debug.Print sum
VB4. A列の空セルに出会うまで表示
Dim row As Long
row = 1
While Cells(row, 1).Value <> ""
Debug.Print Cells(row, 1).Value
row = row + 1
Wend
VB5. 文字列が「END」になるまで入力を繰り返す
Dim s As String
s = InputBox("文字を入力")
While s <> "END"
Debug.Print s
s = InputBox("文字を入力")
Wend
VB6. 2倍を繰り返し1000を超えるまで
Dim num As Long
num = 2
While num <= 1000
Debug.Print num
num = num * 2
Wend
VB7. 配列の要素を順番に表示
Dim arr(1 To 5) As String
Dim i As Integer
arr(1) = "A": arr(2) = "B": arr(3) = "C": arr(4) = "D": arr(5) = "E"
i = 1
While i <= 5
Debug.Print arr(i)
i = i + 1
Wend
VB8. 乱数を生成し、10以上になるまで繰り返す
Dim r As Integer
r = Int(Rnd * 20)
While r < 10
Debug.Print r
r = Int(Rnd * 20)
Wend
VB9. ファイルが存在する間、処理を繰り返す(仮想例)
Dim f As String
f = Dir("C:\Test\*.txt")
While f <> ""
Debug.Print f
f = Dir
Wend
VB10. ユーザーが「キャンセル」を押すまで繰り返す
Dim ans As String
ans = InputBox("続けますか?")
While ans <> ""
Debug.Print "続行"
ans = InputBox("続けますか?")
Wend
VB✅ 練習のポイント
- Do While … Loop → 先判定(条件を最初にチェック)
- Do … Loop While → 後判定(最低1回は必ず実行)
- 書き換えの際は「条件式」と「処理の順序」を意識する。
👉 この10問を「Do While … Loop」と「Do … Loop While」の両方で書き換えてみると、違いがよく理解できます。
