このサイト『インストラクターのネタ帳』のアクセスログを眺めていて、
「excelvba offsetを変数に代入」
「2010 マクロ activecell.offset 変数」
という検索キーワードでのアクセスがあることに気づきました。
Excel VBAの、オブジェクト式(オブジェクトを取得するコード)の文法を、まだ理解できていない方による検索でしょうから、ここでは簡単なSubプロシージャをご紹介しておきます。
RangeオブジェクトのOffsetプロパティの戻り値を変数にセットするサンプル
以下のSubプロシージャを実行すると、メッセージボックスに「B1」と表示されたあとに、B1セルが選択されます。
Dim rng As Range
Set rng = Range("A1").Offset(1, 0) MsgBox rng.Address(False, False)
rng.Select
End Sub
Range.Offsetの戻り値を変数にセットするプロシージャで行っている処理
Rangeオブジェクトに用意されているOffsetプロパティは、オブジェクトブラウザー等で確認すればわかるとおり、Rangeオブジェクトを返すプロパティですから、
戻り値を受ける変数はRange型で宣言しておいて、
Dim rng As Range
単なる代入文ではなく、Setキーワードを使う必要があります。
Set rng = Range("A1").Offset(1, 0)
変数・rngにはRangeオブジェクトがセットされているので、
MsgBox rng.Address(False, False)
の行で、RangeオブジェクトのAddressプロパティで取得したアドレスが、メッセージボックスに表示され、つづく、
rng.Select
の行で、RangeオブジェクトのSelectメソッドで選択が行われます。
RangeオブジェクトOffsetプロパティもRangeオブジェクトを返す
この記事のトリガーとなった、
「excelvba offsetを変数に代入」
「2010 マクロ activecell.offset 変数」
といった検索をなさった方は、Rangeプロパティ・Cellsプロパティ・ActiveCellプロパティはご存じだと思います。
RangeオブジェクトのOffsetプロパティも、Range・Cells・ActieCellプロパティと同じく、Rangeオブジェクトを返すということを理解しましょう。
最終更新日時:2019-01-09 10:23
Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » Offsetの戻り値を変数に