Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » Offsetの戻り値を変数に

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

Offsetの戻りを変数に

このサイト『インストラクターのネタ帳』のアクセスログを眺めていて、
「excelvba offsetを変数に代入」
「2010 マクロ activecell.offset 変数」
という検索キーワードでのアクセスがあることに気づきました。

Excel VBAの、オブジェクト式(オブジェクトを取得するコード)の文法を、まだ理解できていない方による検索でしょうから、ここでは簡単なSubプロシージャをご紹介しておきます。

[スポンサードリンク]

RangeオブジェクトのOffsetプロパティの戻り値を変数にセットするサンプル

以下のSubプロシージャを実行すると、メッセージボックスに「B1」と表示されたあとに、B1セルが選択されます。

Sub Range_Offsetの戻り値を変数に()
 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オブジェクトを返すプロパティですから、

Offsetの戻りを変数に

戻り値を受ける変数は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の戻り値を変数に

「Offsetプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.