
『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。
仕事の改善や個人的な知識向上に役立ててください(^o^)
第9回目の今回は
・VBAで繰り返し処理(Do~Loop)
について解説していきますので、よろしくお願いします。
前回までのVBAに関するINDEXは下記を参照してくださいね。
↓サブログ内部リンク(VBA用INDEX)↓
-
-
目次
Excel VBA講座-目次(INDEX)
サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 スラスラ読めるExcel VBA ...
続きを見る
繰り返し処理1 ~Do Until・・・Loop~
条件に一致するかどうかを判定したあとに繰り返し処理を行いたい場合、【Do Until・・・Loop】ステートメントを使用します。
<書式>
Do Until 条件式
条件に一致するまで実行する処理内容
Loop
<説明>
条件が満たされるまで繰返し処理を行います。またループを抜ける条件式が繰り返す処理よりも前に描かれているため、繰返し処理が行われないこともあります。
<コード記入例>
Sub 繰返1()
’セルD2を選択します。
Range("D2").Select
'選択しているセルから左に1つめにあるセルが空白である場合、処理を繰り返します(★)。
Do Until ActiveCell.Offset(0, -1).Value = ""
'選択しているセルに、選択しているセルから左に2つめと1つめにある値を掛けた結果を入力します。
ActiveCell.Value = ActiveCell.Offset(0, -2).Value * ActiveCell.Offset(0, -1).Value
'選択しているセルから下に1つ移動します。
ActiveCell.Offset(1, 0).Select
'処理を繰り返します(★に移動)
Loop
End Sub
繰り返し処理2 ~Do ・・・Loop Until~
同様な条件での繰り返し処理をしたあとに条件判定を行い、条件に一致するまで処理を繰り返して行う場合、【Do・・・Loop Unitl】ステートメントを使用します。
<書式>
Do
条件に一致するまで実行する処理内容
Loop Until 条件式
<説明>
条件が満たされるまで繰返し処理を行います。またループを抜ける条件式が繰り返す処理よりも後に描かれているため、繰返し処理は1度は行われます。
<コード記入例>
Sub 繰返2()
’セルD2を選択します。
Range("D2").Select
'下記の処理を実行します(★)。
Do
'選択しているセルに、選択しているセルから左に2つめと1つめにある値を掛けた結果を入力します。
ActiveCell.Value = ActiveCell.Offset(0, -2).Value * ActiveCell.Offset(0, -1).Value
'選択しているセルから下に1つ移動します。
ActiveCell.Offset(1, 0).Select
'選択しているセルから左に1つめにあるセルが空白である場合、処理を繰り返します(★に移動)
Loop Until ActiveCell.Offset(0, -1).Value = ""End Sub
繰り返し処理3 ~Do ・・・Loop While~
同様な条件での繰り返し処理をしたあとに条件判定を行い、条件に一致する間は処理を繰り返して行う場合、【Do・・・Loop While】ステートメントを使用します。
<書式>
Do
条件式に一致する間は実行する処理内容
Loop While 条件式
<説明>
条件が満たされる間は繰返し処理を行います。またループを抜ける条件式が繰り返す処理よりも後に描かれているため、繰返し処理は1度は行われます。
<コード記入例>
Sub 繰返3()
’セルD2を選択します。
Range("D2").Select
'下記の処理を実行します。(★)
Do
'選択しているセルに、選択しているセルから左に2つめと1つめにある値のかけ算した結果を入力します。
ActiveCell.Value = ActiveCell.Offset(0, -2).Value * ActiveCell.Offset(0, -1).Value
'選択しているセルから下に1つ移動します。
ActiveCell.Offset(1, 0).Select
'選択しているセルから左に1つめにあるセルが空白でない間は、処理を繰り返します。(★に移動)
Loop While ActiveCell.Offset(0, -1).Value <> ""
End Sub

下のVBA講座も是非ご覧下さい!!
関連
前回のVBA講座(第8回)
条件分岐処理(If、Select Case)を極める!【VBA入門講座#8】
関連
次回のVBA講座(第10回)