Home » Excel VBA Rangeオブジェクト » VBAで複数のアクティブセルを取得する??

VBAで複数のアクティブセルを取得する??

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2411(ビルド18201.20000クイック実行)ベータチャネル

「vba アクティブセル 複数 取得」
といった検索が、このサイト『インストラクターのネタ帳』で行われていました。

[スポンサードリンク]

アクティブセルは1つだけ

まずお伝えしたいのは、アクティブセルは1個だけです。
アクティブセルが複数あるということはありません。

複数のセルが選択されている状態で以下のExcelマクロを実行しても、アクティブな1個のセルのセル番地がメッセージボックスに表示されます。

Sub アクティブセルのアドレスを取得する()
 MsgBox ActiveCell.Address(False, False)
End Sub

Excelのアドレスボックスに表示されているのが、アクティブセルのアドレスです。

「vba アクティブセル 複数 取得」
と検索なさった方がアクティブセルと思っていらっしゃるのは、おそらく選択されているセルのことでしょう。

選択されているセルを順番に取得する

選択されている、1つまたは複数のセルを表すRangeオブジェクトを取得するには、Window.RangeSelectionプロパティなどを使って、For Each~Nextループで処理してください。

複数のセルを選択しておいて以下のExcelマクロを実行すると、選択されているセルのアドレスが順番にメッセージボックスに表示されます。

Sub 選択されているセルのアドレスを順番に取得する()
 Dim rng As Range
 For Each rng In ActiveWindow.RangeSelection
  MsgBox rng.Address(False, False)
 Next
End Sub

グローバルメンバーのSelectionプロパティを使う方が、多そうですが私はWindow.RangeSelectionプロパティをおすすめします。

最終更新日時:2024-10-24 0835

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » VBAで複数のアクティブセルを取得する??

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

検索


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

.