Home » Excel VBA Rangeオブジェクト » 結合セル » MergeAreaの最終セルのアドレスを取得する

MergeAreaの最終セルのアドレスを取得する

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

「vba mergeareaの最後のアドレス」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBA(Visual Basic for Applications)では、RangeオブジェクトのMergeAreaプロパティで、結合セル範囲を表すRangeオブジェクトを取得できます。

この結合セルの最後のセル・最終セルのアドレスを取得するオブジェクト式を探していた方による、検索キーワードでしょう。

[スポンサードリンク]

結合セルの最終セルアドレスを取得するWithを使ったサンプルマクロ

結合セルがアクティブな状態で以下のマクロを実行すると、アクティブな結合セルの最終セルのアドレスがメッセージボックスに表示されます。
Sub 結合セルの最終セルアドレスを取得する_With()
 With ActiveCell.MergeArea
  MsgBox .Item(.Count).Address
 End With
End Sub

MergeArea.Countというオブジェクト式で結合されているセルの数を取得でき、Range.ItemはコレクションとしてのRangeオブジェクトから単一のRangeを取得するオブジェクト式ですから、上記のようなマクロで結合セルの最終セルのアドレスを取得できます。

上記のマクロはセルのアドレスを絶対参照形式で返してきますが、「$」のない相対参照の形で取得したいのであれば、「.Address」の後ろに引数を指定して「.Address(False, False)」としてください。

結合セルの最終セルアドレスを取得する変数を使ったサンプルマクロ

オブジェクト式の文法がしっかりと理解できていない方の場合、上記のマクロは難しく感じるかもしれません。

その場合、以下のマクロでご確認ください。

Sub 結合セルの最終セルアドレスを取得する_変数利用()
 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の最終セルのアドレスを取得する

「結合セル」の記事一覧

検索


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

.