更新日:、 作成日:
VBA セルの結合を解除する
はじめに
Excel VBA マクロのセルの結合を解除する方法を紹介します。
Range.MergeCells プロパティでセルの結合を解除できます。
結合されているか判定もできます。
セルを結合するには「セルを結合する」をご覧ください。
セルを範囲指定するすべての方法は「セルを範囲指定して取得する」をご覧ください。
セルの結合を解除する
Range の引数にセル名を指定すると、そのセルの結合を解除できます。
セル「A1」~「B2」の結合を解除するには Range("A1").MergeCells = False を入力します。
Range("A1").MergeCells = False ' A1 ~ B2 の結合が解除される
Range("A2").MergeCells = False ' A1 ~ B2 の結合が解除される
Range("B1").MergeCells = False ' A1 ~ B2 の結合が解除される
Range("B2").MergeCells = False ' A1 ~ B2 の結合が解除される
結合されているどのセルに対して行っても、結合を解除できます。
結合されていないときは何も起こりません。
セルが結合されているか判定する
MergeCells が True のときは、そのセルは結合されています。
MergeArea から結合されている範囲を取得できます。
Dim c As Range
If Range("A1").MergeCells = True Then
Debug.Print("結合されています。")
Set c = Range("A1").MergeArea ' 結合範囲を取得
Debug.Print(c.Address)
Else
Debug.Print("通常のセルです。")
End If
スポンサーリンク
別シートのセルの結合を解除する
シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。
Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。
' Sheet1 のセル「A1」の結合を解除
Worksheets("Sheet1").Range("A1").MergeCells = False
Worksheets(1).Range("A1").MergeCells = False
' Sheet2 のセル「A1」の結合を解除
Worksheets("Sheet2").Range("A1").MergeCells = False
Worksheets(2).Range("A1").MergeCells = False
Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表す Me. が省略されています。
' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"
標準モジュールに Range や Cells を入力すると、開いているシートのセルになります。アクティブシートを表す ActiveSheet. が省略されています。
' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"