サイトについて      連絡先   検索

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 の結合が解除される
1

結合されているどのセルに対して行っても、結合を解除できます。

結合されていないときは何も起こりません。

セルが結合されているか判定する

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

' 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 = "アクティブ"
  • 目次
    • セルの結合を解除する
    • セルが結合されているか判定する
    • 指定したシートのセルを結合する