Home » Excel VBA Rangeオブジェクト » Excel VBAで選択範囲の最終セルを取得する-Selection.Item(Selection.Count)

Excel VBAで選択範囲の最終セルを取得する-Selection.Item(Selection.Count)

対象:Excel 2010, Excel 2013, Windows版Excel 2016

「excel2010 選択したエリアの最終セル 取得 vba」
という検索キーワードに気づきました。

選択したセル範囲の、最後のセルを取得するには、どのようなコードを書けばいいのかを探していらした方による検索です。

選択セルを表すRangeオブジェクトを取得するSelectionプロパティを組み合わせた式にします。

選択範囲の最終セルを取得する式

具体的には以下のオブジェクト式で、選択範囲の最終セルを取得できます。
 Selection(Selection.Count)
取得する式だけではよくわからないでしょうから、意味のあるステートメント(文)にすると以下のとおりです。
 MsgBox Selection(Selection.Count).Address

上記ステートメントを実行すれば、選択されているセル範囲の最終セルのアドレスがメッセージボックスに表示されます。

Itemプロパティを省略しない選択範囲の最終セルを取得する式

先ほどの、
  Selection(Selection.Count)
というオブジェクト式は、RangeオブジェクトのItemプロパティが省略されています。

選択範囲の最終セルを取得する

Range.Itemを省略しなければ以下のように書けます。
 Selection.Item(Selection.Count)

Range.Itemプロパティの引数に、選択されているセルの数を取得する式Selection.Countを指定しているわけです。

[スポンサードリンク]
ステートメントにする場合は、以下のとおりです。
 MsgBox Selection.Item(Selection.Count).Address

選択範囲の最終セルを取得する式を確認する

Selection.(Selection.Count)
 や
Selection.Item(Selection.Count)
といった式を機械的に覚えるのではなく、意味を理解しましょう。

選択範囲のセルの数を変数にすると、先ほどの
  MsgBox Selection.Item(Selection.Count).Address
以下のように書き直せます。

Sub 選択範囲の最終セルを確認する()
 Dim cnt As Long

 cnt = Selection.Count
 MsgBox Selection.Item(cnt).Address
End Sub

上記Subプロシージャの、
  cnt = Selection.Count
で、変数cntに選択セルの数を代入していることをイメージしておきましょう。

選択範囲のセルの数を取得する部分だけでなく、選択範囲のセルを表すRangeオブジェクトも変数にすると、以下のように書けます。

Sub 選択範囲の最終セルを確認する()
 Dim rng As Range
 Dim cnt As Long

 Set rng = Selection
 cnt = rng.Count
 MsgBox rng.Item(cnt).Address
End Sub

先ほどの、
  cnt = Selection.Count
より難易度は上がりますが、
  Set rng = Selection
で、オブジェクト変数rngに、選択されているセルを表すRangeオブジェクトがセットされることをイメージしておきましょう。

更に最終セルを表すRangeオブジェクトも変数にすると、以下のように書けます。

Sub 選択範囲の最終セルを確認する()
 Dim rng As Range
 Dim rng_z As Range
 Dim cnt As Long

 Set rng = Selection
 cnt = rng.Count
 Set rng_z = rng.Item(cnt)
 MsgBox rng_z.Address
End Sub

実際に利用するマクロの中で、どこまで分解するかはさておき、オブジェクト式「Selection(Selection.Count)」「Selection.Item(Selection.Count)」の意味を理解するために、変数を使った分解を行ってみることおすすめします。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Excel VBAで選択範囲の最終セルを取得する-Selection.Item(Selection.Count)

「Excel VBA Rangeオブジェクト」の記事一覧

検索


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

.