セルの結合と結合されたセルの情報を取得

以下のマクロは、Excel VBAを使用してセルの結合と結合されたセルの情報を取得する方法を示しています。

Sub RangeMergeAreaMergeCells()
    ' セルA1~D7を結合する
    Range("A1:D7").Merge
    Debug.Print Range("A1").MergeCells      'True       結合されているかどうか
     
    ' 結合セルの各種情報を取得する
    With Range("A1").MergeArea
        Debug.Print .Address                '$A$1:$D$7  結合範囲
        Debug.Print .Count                  '28         結合されているセル数
        Debug.Print .Item(1).Address        '$A$1       左上のセル
        Debug.Print .Item(.Count).Address   '$D$7      右下のセル
        Debug.Print .Rows.Count             '6          行数
        Debug.Print .Columns.Count          '4          列数
    End With
    
    ' セルA1の結合を解除する
    Range("A1").UnMerge
    Debug.Print Range("A1").MergeCells      'False       結合されているかどうか
End Sub

マクロの説明:

  1. セルの結合と結合情報の取得:
    • Range("A1:D7").Merge: セルA1からD7までを結合します。
    • Debug.Print Range("A1").MergeCells: セルA1が結合されているかどうかを確認します。結合されている場合はTrueを返します。
  2. 結合されたセルの情報取得:
    • With Range("A1").MergeArea: 結合されたセルの情報を取得するためのWithブロックを開始します。
      • .Address: 結合されたセルの範囲のアドレスを表示します。ここでは$A$1:$D$7が結果として返ります。
      • .Count: 結合されたセルの数を表示します。結合されているセル数が28であることを示しています。
      • .Item(1).Address: 結合されたセルの中で左上のセルのアドレスを表示します。ここでは$A$1が返されます。
      • .Item(.Count).Address: 結合されたセルの中で右下のセルのアドレスを表示します。ここでは$D$7が返されます。
      • .Rows.Count: 結合されたセル範囲の行数を示します。この場合、6行であることが分かります。
      • .Columns.Count: 結合されたセル範囲の列数を示します。この場合、4列であることが分かります。
  3. 結合の解除:
    • Range("A1").UnMerge: セルA1の結合を解除します。
    • Debug.Print Range("A1").MergeCells: セルA1が結合されているかどうかを再度確認します。結合が解除されているので、Falseが返されます。

注意点:

  • Merge メソッドを使用してセルを結合すると、結合されたセルの情報を MergeArea プロパティを通じて取得できます。この情報には、結合されたセルの範囲、セルの数、行数、列数、および各セルのアドレスが含まれます。
  • 結合を解除するには UnMerge メソッドを使用します。
  • 結合されたセルの情報を取得することで、特定の操作(例: 結合したセルに対して特別な操作を実行する)を簡単に実装することができます。

これにより、セルの結合と結合されたセルの情報を操作するための基本的な手法が示されています。

以下を参考にしました。ありがとうございます。

結合セルの情報を取得する【MergeAreaプロパティ】

https://vba-create.jp/vba-property-mergearea/

Follow me!