Offsetの使い方
A1セルにカーソルがあるシートです。
Offset(1,2)でA1セルから下へ1行、右へ2列移動させるVBAです。
Sub MyOffset()
Range("A1").Offset(1, 2).Select
End Sub
実行結果です。
C2セルが選択されました。
Offsetの引数にマイナスを使う
引数にマイナスを使ったVBAです。
Sub MyOffset()
Range("A1").Offset(-1, -2).Select
End Sub
もし移動できない場合は下のように「実行時エラー:'1004' アプリケーション定義またはオブジェクト定義のエラーです。」とエラーが発生します。
Offsetの引数を省略する
列の引数を省略したVBAです。
Sub MyOffset()
Range("A1").Offset(1).Select
End Sub
行の引数を省略したVBAです。
Sub MyOffset()
Range("A1").Offset(, 2).Select
End Sub
変数でループする方法
Do~Loopのループで、Offsetの引数に変数を使用し、指定したデータを見つけるVBAです。
・Range("C4").Offset(i)で、順に下の行のデータを調べます。
Sub MyOffset()
Dim i As Long
i = 0
Do
If Range("C4").Offset(i) = "DYU-16" Then
MsgBox "項目名から" & i & "行目に見つかりました。"
Exit Do
ElseIf Range("C4").Offset(i) = "" Then
MsgBox "見つかりませんでした。"
Exit Do
End If
i = i + 1
Loop
End Sub
見つかった場合、下のように何行目で見つかったかを表示します。