こんなあなたにおすすめ
・Excel VBAで最終行のセルを取得したい
・Excel VBAで最終列のセルを取得したい
Excelを使っていると、セルをオフセットしたときのセルの値を取得したいことがあります。
ここで言うオフセットは、あるセルから行と列を移動するという意味です。
今回は、あるセルからオフセットした際のセルの値を取得するOffsetプロパティの使い方について解説します。
また、オフセットしたセルの行、列を取得する方法についても少しコードを見ていきましょう。
セルの位置を取得する方法については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】セルの位置を取得する Row & Column
Offsetプロパティの使い方
Offsetプロパティを使うことで、指定したセルをオフセットしたセルの値を取得できます。
・特定のセルを指定する
Range(“A1”).Offset(行数, 列数)
・アクティブセルを指定する
ActiveCell.Offset(行数, 列数)
・選択セルを指定する
Selection.Offset(行数, 列数)
↓実行時のExcel
実際にコードを見ていきましょう。
特定のセルをオフセット
Sub test1() Dim c As Range Set c = Range("C3") Debug.Print (c.Offset(1, 0).Value) ' C4 Debug.Print (c.Offset(-1, 0).Value) ' C2 Debug.Print (c.Offset(0, 1).Value) ' D3 Debug.Print (c.Offset(0, -1).Value) ' B3 End Sub
アクティブセルをオフセット
Sub test2() Dim c As Range Set c = ActiveCell Debug.Print (c.Offset(1, 0).Value) ' C4 Debug.Print (c.Offset(-1, 0).Value) ' C2 Debug.Print (c.Offset(0, 1).Value) ' D3 Debug.Print (c.Offset(0, -1).Value) ' B3 End Sub
選択セルをオフセット
Sub test3() Dim c As Range Set c = Selection Debug.Print (c.Offset(1, 0).Value) ' C4 Debug.Print (c.Offset(-1, 0).Value) ' C2 Debug.Print (c.Offset(0, 1).Value) ' D3 Debug.Print (c.Offset(0, -1).Value) ' B3 End Sub
オフセットしたセルの行、列を取得する
“C3″セルから(1, 0)オフセットしたときのセルは、”C4″セルです。
そのセルの行、位置、セルは、Row、COlumn、Addressで取得できます。
Sub test4() Dim c As Range Set c = Range("C3") Debug.Print (c.Offset(1, 0).Row) '4 Debug.Print (c.Offset(1, 0).Column) '3 Debug.Print (c.Offset(1, 0).Address) '$C$4 End Sub
まとめ
ここまで、Offsetプロパティの使い方について解説しました。
ぜひ使ってみてください。
セルの位置を取得する方法については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】セルの位置を取得する Row & Column
Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし
オンラインスクール受講者数No.1!
・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!
・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!
・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!
・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!
無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら