【Excel】VBAでセルを参照するときのひな型

Excel

概要

シートのデータを先頭行から最終行まで参照する。
将来的なことも考慮し列番号は必ず列挙型で設定する。

サンプルコード

下記データを想定しデータを参照する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に処理を返します。サンプルコード...