VBAのOffsetプロパティとは?Offsetプロパティの構文や使い方を解説
Offsetプロパティは、Excelのセルを移動するために使用します。ここでは、基本的な使用方法を紹介していきます。
以降の図では、移動前のセルを黄色、移動後のセルを緑で網掛けしています。また、図に書かれている「1, 2」といった数字は、Excelのセル座標になっています。
目次
1.Offsetプロパティについて
1-1.Offsetプロパティとは
Offsetプロパティとは、指定した範囲からオフセット(移動)した結果を返します。目に見える動作としては、指定した値だけアクティブセルが移動します。
例)アクティブセル「縦1、横1」からOffsetプロパティを使って、下に2マス右に3マス移動
結果:セル(1. 1)からセル(3, 4)へ移動
1-2.Offsetプロパティの構文
Offsetプロパティの使用方法は、主に下記の3種類があります。※ 構文例内のX、Yは、それぞれ移動するセル数になります。
1-2-1.アクティブなセルから移動
ActiveCell.Offset(横に移動するセルの数, 縦に移動するセルの数).select
1-2-2.セル座標を選択してから移動
Rangeを使う場合
Range("A1").Offset(横に移動するセルの数, 縦に移動するセルの数).select
Cellsを使う場合
Cells(1, 1).Offset(横に移動するセルの数, 縦に移動するセルの数).select
1-2-3.範囲を指定してから移動
Selection.Offset(横に移動するセルの数, 縦に移動するセルの数).select
2.Offsetプロパティの使用例
2-1.基本的な使用例
2-1-1.初期値設定
Sub sample01() 'A1を選択 Cells(1, 1).Select '① 'A1から下へ2、右へ3移動 ActiveCell.Offset(2, 3).Activate '② End Sub
結果:①実行後
②実行後
2-2.特殊な書き方をする場合
2-2-1.基準となるセルを範囲で指定する
Sub sample02() 'A1を選択 Range("A1:C3").Select '① 'A1から下へ2、右へ1移動 Selection.Offset(2, 1).Activate '② End Sub
結果:①実行後
②実行後
2-2-2.offsetを複数回使用する
Sub sample03() Dim ret As Range 'A1を選択Offset Cells(1, 1).Select '① 'A1から下へ2、右へ1移動 'その後下へ1、右へ3移動 ActiveCell.Offset(2, 1).Offset(1, 3).Activate '② End Sub
結果:①実行後
②実行後
処理としては水色の矢印で移動していますが、連続で処理を行っているためオレンジの矢印のように移動して見えます。
3.注意点
3-1.起点セルが結合している場合
起点となるセルが結合されている場合は、結合前のセル数に関係なく1つのセルとします。
Sub sample04() 'A1を選択 Cells(1, 1).Select '① 'A1から下へ2、右へ3移動 ActiveCell.Offset(2, 3).Activate End Sub
結果:①実行後
②実行後
起点となるセル(1, 1)が縦2セル分結合されているため、セル(3, 4)ではなくセル(4, 4)に移動します。
4.最後に
Offsetプロパティは、使い方次第で非常に有用なプロパティです。ぜひ、使いこなしてみてください。
コメント