Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » 選択セルを取得する-RangeSelectionプロパティ

選択セルを取得する-RangeSelectionプロパティ

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

「vba 選択セル 取得」
「excel vba 選択中のセル 取得」
「vba 選択されている全てのセルを取得」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスが時折あります。

Excel VBA(Visual Basic for Applications)で、選択されているすべてのセルを表すRangeオブジェクトを取得するコードを探していた方による検索です。

WindowオブジェクトのRangeSelectionプロパティで選択セルを取得できる

Windowオブジェクトに用意されているRangeSelectionプロパティを利用するのが、

Window.RangeSelectionで選択されているセルを取得する

ひとつの方法です。

[スポンサードリンク]

Window.RangeSelectionで選択されているセルを取得するサンプルマクロ

以下のSubプロシージャを実行すると、選択されているセル範囲のアドレスがメッセージボックスに表示されます。


Sub 選択されている全セルを取得する()
 MsgBox _
   ActiveWindow.RangeSelection.Address(False, False)
End Sub

ActiveWindowプロパティで、アクティブなウィンドウを表すWindowオブジェクトを取得して、

Window.RangeSelectionで選択されているセルを取得する

WindowオブジェクトのRangeSelectionプロパティを使って、選択されているすべてのセルを表すRangeオブジェクトを取得して、

Window.RangeSelectionで選択されているセルを取得する

RangeオブジェクトのAddressプロパティを使って、選択されている全セルのアドレスを取得しています。

RangeSelectionプロパティはグローバルメンバーではない

RangeSelectionプロパティは、上位のオブジェクト式を省略できるグローバルメンバーではなく、Windowオブジェクトにだけ用意されているプロパティです。

ですから上記のプロシージャで利用しているActiveWindowプロパティのような、Windowオブジェクトを取得するコードに続けて記述する必要があります。

Window.RangeSelectionで選択セルを取得して順番に処理するサンプルマクロ

選択されているすべてのセルを取得して、順番に処理をしたいということであれば、以下のSubプロシージャが参考になるでしょう。


Sub 選択されている全セルを取得して順番に処理する()
 Dim rng As Range
 For Each rng In ActiveWindow.RangeSelection
  MsgBox rng.Address(False, False)
 Next rng
End Sub

上記のSubプロシージャを実行すると、選択されているセルのアドレスが、順番にメッセージボックスに表示されます。

オブジェクト式「ActiveWindow.RangeSelection」は、複数セルが選択されていれば、コレクションとしてのRangeオブジェクトを返します。コレクションとしてのRangeオブジェクトに含まれる個々のRangeオブジェクトをFor Each~Nextループで処理しているのが上記のSubプロシージャです。

最終更新日時:2019-01-21 14:49

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » 選択セルを取得する-RangeSelectionプロパティ

TrackBack:5

TrackBack URL
選択セルを取得する-Selectionプロパティ from インストラクターのネタ帳
対象:Excel2007, Excel2010, Excel2013, Win...
CurrentRegionのセル番地を取得する from インストラクターのネタ帳
Range.Addressプロパティを使うと、CurrentRegionのセル番地も取得できます。
アクティブセルを表すRangeオブジェクトを取得する-ActiveCellプロパティ from インストラクターのネタ帳
ActiveCellプロパティを使うとアクティブなセルを表すRangeオブジェクトを取得できます。
エラーセルの個数を取得する-SpecialCells(xlCellTypeFormulas, xlErrors).Count from インストラクターのネタ帳
エラーセルの個数を取得するExcel VBAのコードについて解説しています。
セル範囲をPDFで保存するマクロ-Range.ExportAsFixedFormat from インストラクターのネタ帳
RangeオブジェクトのExportAsFixedFormatメソッドで、セル範囲をPDFとして保存できます。

Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » 選択セルを取得する-RangeSelectionプロパティ

「Windowオブジェクト」の記事一覧

検索


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

.