動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2304 ビルド16327.20134)
「vba mergearea(1)」
といった検索キーワードで時折アクセスがあります。
Excel VBAのコード「.MergeArea(1)」の意味を調べていらしたのでしょう。
[スポンサードリンク]
MergeArea(1)を確認するサンプルマクロ
結合セルがアクティブな状態で、以下のExcelマクロを実行してください。
Sub MergeAreaを確認する()
With ActiveCell
Debug.Print .MergeArea.Address(False, False)
Debug.Print .MergeArea.Item(1).Address(False, False)
Debug.Print .MergeArea(1).Address(False, False)
End With
End Sub
With ActiveCell
Debug.Print .MergeArea.Address(False, False)
Debug.Print .MergeArea.Item(1).Address(False, False)
Debug.Print .MergeArea(1).Address(False, False)
End With
End Sub
たとえば、B2:D3セルが結合されていてアクティブなときに上記のマクロを実行すると、
B2:D3
B2
B2
と出力されます。
.MergeArea.Address(False, False)
で出力されたのが、「B2:D3」で、
.MergeArea.Item(1).Address(False, False)
と
.MergeArea(1).Address(False, False)
で出力されたのが、「B2」です。
MergeArea(1)で結合セルの1番左上のRangeを取得できる
「.MergeArea(1)」は、「.MergeArea.Item(1)」の「.Item」を省略した書き方です。
RangeオブジェクトのItemプロパティを使うと、セル範囲の先頭セル・1番左上のセルを取得できます。
この挙動は、Range.MergeAreaプロパティで取得できる結合セルの場合も同じです。
つまり「.MergeArea(1)」や「.MergeArea.Item(1)」は、結合セルの1番左上のセルを取得するコードです。
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » 結合セル » Excel VBAのMergeArea(1)とは