Excel VBA でセル同士を結合・解除する場合は、 MergeCells プロパティを使用します。 ここでは、MergeCells プロパティの使い方について説明します。
MergeCells プロパティの使い方
MergeCells プロパティの構文は以下の通りです。
1 2 |
Rangeオブジェクト.MergeCells = True ' 指定したセル範囲を結合する Rangeオプジェクト.MergeCells = False ' 指定したセル範囲の結合を解除 |
Range オブジェクトで対象となるセルの範囲を取得し、その MergeCells プロパティに論理値を設定することでセルの結合・解除を行います。True でセルは結合され、False でセルの結合が解除されます。
もし結合するセル範囲に複数の値が設定されている場合は、最も左上端にあるデータが結合後に設定されます。
セルを結合する
以下は、セル範囲「A1:B2」を結合する例です。
1 |
Range("A1:B2").MergeCells = True |
もし結合後に文字を中央に設定したい場合は、以下のようにします。
1 2 3 4 |
With Range("A1:B2") .MergeCells = True .HorizontalAlignment = xlCenter ' 水平方向に中央揃え End With |
複数プロパティの値を同時に設定するときは With ステートメントを使うと便利です。
セルの結合を解除する
以下は、セル範囲「A1:B2」の結合を解除します。
1 |
Range("A1:B2").MergeCells = False |
もしセル内に値が設定されている場合は、範囲の最も左上端のセルに値が格納されます。
結合の確認メッセージを非表示にする
複数のセルに値が設定されている場合は、セルを結合するときに確認メッセージが表示されます。
以下は、セル範囲「A1:B2」を確認メッセージなしで強制的に結合する例です。
1 2 3 |
Application.DisplayAlerts = False ' 確認メッセージの非表示設定 Range("A1:B2").MergeCells = True Application.DisplayAlerts = True ' 確認メッセージの表示設定を戻す |
結合する前にいったんダイアログの設定を非表示にし、結合後に元の設定に戻しています。