Excel VBA Offsetは、セルやセル範囲を基準にして、指定した行数および列数だけ移動した位置を取得するために使用します。動的にセルを参照することが可能になります。使い方や注意点など、サンプルコードをもとに具体的に解説します。
日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
以下のようなシーンで利用されます。
・動的にデータ範囲を指定する。
・相対的な位置にあるデータにアクセスする。
・ループ内でセルの移動を行う。
Offsetは、基準セルやセル範囲に対して相対的に位置を指定します。Offsetの引数として、移動する行数と列数を指定します。
行オフセットや列オフセットには負の値を指定することも可能で、負の値は基準位置から上や左に移動します。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
Option Explicit
Sub ExampleOffset()
Dim baseCell As Range
Dim targetCell As Range
Dim cellValue As Variant
' 基準セルを設定
Set baseCell = Worksheets("Sheet1").Range("A1")
' Offsetプロパティを使用して2行下、3列右のセルを取得
Set targetCell = baseCell.Offset(2, 3)
' 取得したセルの値を変数に格納
cellValue = targetCell.Value
' 結果をメッセージボックスで表示
MsgBox "2行下、3列右のセルの値は: " & cellValue
End Sub
1. 基準セルの設定
Set baseCell = Worksheets("Sheet1").Range("A1")
基準となるセルを`Sheet1`の`A1`セルに設定します。
2. `Offset`プロパティの使用
Set targetCell = baseCell.Offset(2, 3)
基準セルから2行下、3列右のセルを`targetCell`に設定します。
3. セルの値を取得
cellValue = targetCell.Value
`targetCell`の値を変数`cellValue`に格納します。
4. 結果の表示
MsgBox "2行下、3列右のセルの値は: " & cellValue
メッセージボックスで結果を表示します。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。