「vba mergeareaの最後のアドレス」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。
Excel VBA(Visual Basic for Applications)では、RangeオブジェクトのMergeAreaプロパティで、結合セル範囲を表すRangeオブジェクトを取得できます。
この結合セルの最後のセル・最終セルのアドレスを取得するオブジェクト式を探していた方による、検索キーワードでしょう。
結合セルの最終セルアドレスを取得するWithを使ったサンプルマクロ
結合セルがアクティブな状態で以下のマクロを実行すると、アクティブな結合セルの最終セルのアドレスがメッセージボックスに表示されます。With ActiveCell.MergeArea
MsgBox .Item(.Count).Address
End With
End Sub
MergeArea.Countというオブジェクト式で結合されているセルの数を取得でき、Range.ItemはコレクションとしてのRangeオブジェクトから単一のRangeを取得するオブジェクト式ですから、上記のようなマクロで結合セルの最終セルのアドレスを取得できます。
上記のマクロはセルのアドレスを絶対参照形式で返してきますが、「$」のない相対参照の形で取得したいのであれば、「.Address」の後ろに引数を指定して「.Address(False, False)」としてください。
結合セルの最終セルアドレスを取得する変数を使ったサンプルマクロ
オブジェクト式の文法がしっかりと理解できていない方の場合、上記のマクロは難しく感じるかもしれません。
その場合、以下のマクロでご確認ください。
Dim cnt As Long cnt = ActiveCell.MergeArea.Count
MsgBox ActiveCell.MergeArea(cnt).Address
End Sub
結合されているセルの数を一旦変数・cntに代入しておいてから、
cnt = ActiveCell.MergeArea.Count
変数を使って最終セルを取得して、アドレスをメッセージボックスに表示しています。
MsgBox ActiveCell.MergeArea(cnt).Address
Home » Excel VBA Rangeオブジェクト » 結合セル » MergeAreaの最終セルのアドレスを取得する