■ループ処理 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
実行結果:
コメント