動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2411(ビルド18201.20000クイック実行)ベータチャネル
「vba アクティブセル 複数 取得」
といった検索が、このサイト『インストラクターのネタ帳』で行われていました。
[スポンサードリンク]
アクティブセルは1つだけ
まずお伝えしたいのは、アクティブセルは1個だけです。
アクティブセルが複数あるということはありません。
複数のセルが選択されている状態で以下のExcelマクロを実行しても、アクティブな1個のセルのセル番地がメッセージボックスに表示されます。
Sub アクティブセルのアドレスを取得する()
MsgBox ActiveCell.Address(False, False)
End 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
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
[スポンサードリンク]
- Newer:VBAでシートがアクティブかを判定するには
- Older:Shape.Select Replace:=Falseとは
Home » Excel VBA Rangeオブジェクト » VBAで複数のアクティブセルを取得する??