概要
シートのデータを先頭行から最終行まで参照する。
将来的なことも考慮し列番号は必ず列挙型で設定する。
サンプルコード
下記データを想定しデータを参照するVBAサンプル
'列挙型 将来的に列が追加される場合があるため必ず列番号は定義する。
Private Enum Col '列番号を定義
ID = 1 'A列
タイトル = 2 'B列
End Enum
Public Sub LoopSample()
'定数
Const FirstRow = 2 '処理する最初の行番号
'変数
Dim Row As Long '処理中の行番号
Dim strID As String 'A列の値
Dim strTitle As String 'B列の値
'エラー対応
On Error GoTo MyErr
With Worksheets("sheet1") 'sheet1を対象とする。
'With ActiveSheet '※ActiveSheetの場合はこちら
'対象データの存在チェック
If .Cells(FirstRow, Col.ID) <> "" Then
Row = FirstRow
'対象データが存在する場合は最終行まで処理を繰り返す。
Do
'変数にセルの値を格納
strID = Trim(.Cells(Row, Col.ID))
strTitle = Trim(.Cells(Row, Col.タイトル))
'空白行の場合はLOOPを抜ける
If strID = "" Then
Exit Do
End If
'行に対する処理
Debug.Print strID + ":" + strTitle
'処理行が多い場合はExcelが応答なしになる場合があるため
'時々OSに処理を戻す
If Row Mod 20 = 1 Then
DoEvents
End If
'処理行をインクリメントする。
Row = Row + 1
Loop
Else
Debug.Print "対象データなし"
End If
End With
'プロシージャを終了する。
Exit Sub
'エラー処理
MyErr:
'エラーナンバーとエラーコメントを出力する。
Debug.Print CStr(Err.Number) + ":" + Err.Description
End Sub
【Access】VBAでデータ参照するときのひな型
概要AccessのVBAでデータ参照するときのひな型。データを参照しレコードが存在する場合はレコードを先頭から最後まで参照します。また、アプリが応答なしになることを防ぐために途中OSに処理を返します。サンプルコード...