【Excel VBA】ループ処理 Do Until…Loop

■ループ処理 DoUntil…Loop

同一の処理を何度も繰り返すことを「ループ処理」と呼ぶ。
ループ処理には、指定した回数だけ繰り返す方法や、
ある特定の条件を満たすまで処理を繰り返す方法がある。

今回はDoUntil…Loop文を使用する。

Do Until 条件
    処理A
Loop

■例題

以下の「Main」シートに表示されている表の「インプットデータ」列について、
10を加算し、「結果」列に出力する。

フロー図:

サンプルコード:

' シート名の定数
Private Const SHEETNAME_MAIN As String = "Main"

' Mainシート関係の定数
Private Const STARTROW      As Integer = 4      ' 処理開始行
Private Const NOCOL         As Integer = 3      ' 「No.」列
Private Const INPUTDATACOL  As Integer = 4      ' 「インプットデータ」列
Private Const RESULTCOL     As Integer = 5      ' 「結果」列

Private Const CALDATA       As Integer = 10     ' 計算用の定数

Public Sub Cal()
    ' 変数宣言
    Dim ShtName     As Worksheet    ' ワークシート格納変数
    Dim looprow     As Integer      ' 処理行の変数
    Dim resultdata  As Integer      ' 処理結果格納変数

    ' シート名を変数に格納
    Set ShtName = Sheets(SHEETNAME_MAIN)

    ' 処理開始行を変数に格納
    looprow = STARTROW

    ' ループ処理(「No.」列が空白セルになるまで)
    Do Until ShtName.Cells(looprow, NOCOL).Value = ""
        ' 計算処理(「インプットデータ」列の値と計算用の定数で演算する)
        resultdata = ShtName.Cells(looprow, INPUTDATACOL).Value + CALDATA
        ' 計算結果を「結果」列に出力
        ShtName.Cells(looprow, RESULTCOL).Value = resultdata
        ' 処理行をインクリメント
        looprow = looprow + 1
    Loop

    ' 終了処理
    Set ShtName = Nothing

End Sub

実行結果:

タイトルとURLをコピーしました