Offsetプロパティ解説(Excel VBA)

Excel VBA: Range.Offset プロパティの使用方法

Excel VBAでは、Range.Offset プロパティを使用することで、現在の範囲から特定の行または列の距離にある新たな範囲を参照することができます。これにより、動的にセルを参照することが可能となります。

基本的な使用方法

Offset プロパティは、2つの引数、つまり行と列のオフセットを受け入れます。これらの引数は、現在の範囲からどれだけ移動するかを示します。

具体的なコード例

以下のVBAコードは、ActiveSheetのA1セルから右に2つ、下に3つ移動したセルに値を設定する例です。


Sub UseOffset()
    Dim rng As Range
    Set rng = ActiveSheet.Range("A1")
    
    rng.Offset(3, 2).Value = "Hello, World!"
End Sub

このコードでは、まず Range オブジェクトとして rng を宣言し、ActiveSheet の “A1” セルを指すように設定します。次に、Offset メソッドを使用して rng から下に3つ、右に2つ移動したセルを指し、そのセルに “Hello, World!” という値を設定します。

負の引数の使用

引数には負の値も使用できます。負の値を使用すると、上方向または左方向に移動します。たとえば、.Offset(-1, -1)は、現在のセルから上に1行、左に1列移動したセルを指します。

具体的なコード例

以下のVBAコードは、ActiveSheetのD4セルから上に2つ、左に3つ移動したセルに値を設定する例です。


Sub UseNegativeOffset()
    Dim rng As Range
    Set rng = ActiveSheet.Range("D4")
    
    rng.Offset(-2, -3).Value = "こんにちは、世界!"
End Sub

このコードでは、まず rng を “D4” セルを指すように設定します。次に、Offset メソッドを使用して rng から上に2つ、左に3つ移動したセルを指し、そのセルに “こんにちは、世界!” という値を設定します。