Excel VBA | 「While…Wend」を「Do…Loop」に書き換える練習問題

VBA
スポンサーリンク

「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
VB

3. 合計が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
VB

4. A列の空セルに出会うまで表示

Dim row As Long
row = 1
While Cells(row, 1).Value <> ""
    Debug.Print Cells(row, 1).Value
    row = row + 1
Wend
VB

5. 文字列が「END」になるまで入力を繰り返す

Dim s As String
s = InputBox("文字を入力")
While s <> "END"
    Debug.Print s
    s = InputBox("文字を入力")
Wend
VB

6. 2倍を繰り返し1000を超えるまで

Dim num As Long
num = 2
While num <= 1000
    Debug.Print num
    num = num * 2
Wend
VB

7. 配列の要素を順番に表示

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
VB

8. 乱数を生成し、10以上になるまで繰り返す

Dim r As Integer
r = Int(Rnd * 20)
While r < 10
    Debug.Print r
    r = Int(Rnd * 20)
Wend
VB

9. ファイルが存在する間、処理を繰り返す(仮想例)

Dim f As String
f = Dir("C:\Test\*.txt")
While f <> ""
    Debug.Print f
    f = Dir
Wend
VB

10. ユーザーが「キャンセル」を押すまで繰り返す

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」の両方で書き換えてみると、違いがよく理解できます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました