VBA セルの結合と結合解除
In this Article
このチュートリアルでは、VBAを使用してセルを結合するさまざまな方法について見ていきます。
VBAでセルを結合する
VBAでは、Range.Mergeメソッドを使用してセルを結合することができます。次のコードは、セルA1:C1を結合します。
Sub MergingCells()
Range("A1:C1").Merge
End Sub
結果は次のようになります。
VBAでセルの結合を解除する
Range.UnMergeメソッドを使用すると、結合されたセル範囲を解除することができます。例えば、A1:D1というセル範囲が結合されていたとします。このとき、範囲内のセル参照のいずれかを使用して、セルの結合を解除できます。次のコードは、セルA1:D1の結合を解除しますが、この例では、セルB1を使用しています。
Sub UnmergeCells()
Range("B1").UnMerge
End Sub
その他の結合の例
VBAで行を結合する
VBAを使用して、結合したい行番号を指定することで行を結合することができます。セルA1に以下のようなテキストがあるとします。
次のコードでは、1~4行目を結合します。
Sub MergeRows()
Range("1:4").Merge
End Sub
結果は次のようになります。
VBAで列を結合する
VBAと列を表す文字を使って、列を結合することができます。次のコードは、A:Cの列を結合します。
Sub MergeColumns()
Range("A:C").Merge
End Sub
結果は次のようになります。
セルの内容を水平方向にマージして中央化する
セル範囲内のセルコンテンツを水平方向に結合し、中央に配置することができます。対象となるセルをマージし、さらに範囲オブジェクトの水平アライメントプロパティを中央に設定する必要があります。以下のように、セルA1にテキストがあるとします。
次のコードは、セル範囲 A1:D1 をマージし、セル A1 の内容をこのセル範囲に水平に中央配置します。
Sub MergeandCenterContentsHorizontally()
Range("A1:D1").Merge
Range("A1:D1").HorizontalAlignment = xlCenter
End Sub
結果は以下のとおりです。
セルの内容を縦に結合して中央に配置する
セル範囲を越えて、セル内容を縦に結合し、中央に配置することができます。対象となるセルをマージし、さらに範囲オブジェクトの垂直方向配置プロパティを中央に設定する必要があります。以下のように、セルA1にテキストがあるとします。
次のコードは、セル範囲A1:A4をマージし、セルA1の内容をこのセル範囲に垂直方向に中央配置します。
Sub MergeandCenterContentsVertically()
Range("A1:A4").Merge
Range("A1:D1").VerticalAlignment = xlCenter
End Sub
結果は以下のようになります。
セル範囲にまたがって横方向にセルを結合する
セル範囲を複数の行でまたいで横方向にセルを結合することができます。MergeメソッドのオプションのAcrossパラメータをTrueに設定する必要があります。以下のように、セルA1にテキストがあるとします。
次のコードは、セル範囲 A1:D3をマージします。
Sub MergeCellsAcross()
Range("A1:D3").Merge Across:=True
End Sub
結果は以下のようになります。