スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 ① 第5問 3章-1

下のコード「Exam1」と「Exam2」は同じ結果になるマクロである。このとき、【 1 】に入る適切な語句を解答しなさい、

Sub Exam1()
 Dim i As Long, A As Long
  i = 1
 Do While Cells(i, 1) <> ""
  A = A + Cells(i, 1)
  i = i + 1
 Loop
 MsgBox A
End Sub

ーーーーーーーーーーーーーーーーー

Sub Exam2()
 Dim i As Long, A As Long
  i = 1
 Do【 ① 】Cells(i, 1) = ""
  A = A + Cells(i, 1)
  i = i + 1
 Loop
 MsgBox A
End Sub

ステートメント 模擬問題 過去問題 演習問題 練習問題  ステートメント 模擬問題 過去問題 演習問題 練習問題
正解

【 ① 】until

解説
以下はどちらも同じ結果になります。

Do While Cells(i, 1) <> ""    条件Cells(i, 1)<> ""が正しい間は繰り返す( 空欄でない時は)
Do Until Cells(i, 1) = ""  条件Cells(i, 1) = ""が正しくないときは繰り返す( 空欄が正しくない時は) 両方とも空欄でない間は繰り返します。

Do~LoopステートメントでDo に続く条件に「Until」や「 While 」を指定することで、空欄となるまでは条件が正しいとき(While)、あるいは正しくないとき(Until)まで処理を繰り返すステートメントになります。

構文:Do WhileあるいはUntil ①条件
処理
Loop WhileあるいはUntil ⓶条件

条件…①、⓶処理の前か後どちらかに設定できる

また条件の設定は、繰り返しの前、または後、DoあるいはUntilのどちらかに設定可能です。計4パータンです。
繰り返しの前に設定・Do While 条件 ・Do Until 条件
繰り返しの後に設定 ・Loop While 条件 ・Loop Until  条件

[コード解説]

Sub Exam1()

 Dim i As Long, A As Long

 i = 1

' 変数iを初期化しています。

 Do While Cells(i, 1) <> ""

' セル(i, 1)が空でない間、ループを繰り返します。

 A = A + Cells(i, 1)

' セル(i, 1)の値をAに加算しています。

 i = i + 1

' 次の行に進むためにiをインクリメントしています。

 Loop

 MsgBox A

' 合計結果をメッセージボックスに表示しています。

End Sub

Sub Exam2()

 Dim i As Long, A As Long

  i = 1

' 変数iを初期化しています。

  Do Until Cells(i, 1) = ""

' セル(i, 1)が空になるまでループを繰り返します。

  A = A + Cells(i, 1)

' セル(i, 1)の値をAに加算しています。

   i = i + 1

' 次の行に進むためにiをインクリメントしています。

 Loop

 MsgBox A

' 合計結果をメッセージボックスに表示しています。

End Sub