VBA セルの結合と結合解除

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 7, 2022

このチュートリアルでは、VBAを使用してセルを結合するさまざまな方法について見ていきます。

VBAでセルを結合する

VBAでは、Range.Mergeメソッドを使用してセルを結合することができます。次のコードは、セルA1:C1を結合します。

Sub MergingCells()

Range("A1:C1").Merge

End Sub

結果は次のようになります。

How to Merge Cells in VBA セル 結合

VBAでセルの結合を解除する

Range.UnMergeメソッドを使用すると、結合されたセル範囲を解除することができます。例えば、A1:D1というセル範囲が結合されていたとします。このとき、範囲内のセル参照のいずれかを使用して、セルの結合を解除できます。次のコードは、セルA1:D1の結合を解除しますが、この例では、セルB1を使用しています。

Sub UnmergeCells()

Range("B1").UnMerge

End Sub

その他の結合の例

VBAで行を結合する

VBAを使用して、結合したい行番号を指定することで行を結合することができます。セルA1に以下のようなテキストがあるとします。

Merging Rows Using VBA 行 結合

次のコードでは、1~4行目を結合します。

Sub MergeRows()

Range("1:4").Merge

End Sub

結果は次のようになります。

Merging Rows Using VBA 行 結合

VBAで列を結合する

VBAと列を表す文字を使って、列を結合することができます。次のコードは、A:Cの列を結合します。

Sub MergeColumns()

Range("A:C").Merge

End Sub

結果は次のようになります。

Merging Columns In VBA 列 結合

セルの内容を水平方向にマージして中央化する

セル範囲内のセルコンテンツを水平方向に結合し、中央に配置することができます。対象となるセルをマージし、さらに範囲オブジェクトの水平アライメントプロパティを中央に設定する必要があります。以下のように、セルA1にテキストがあるとします。

Merge Cells Horizontally Using VBA 結合 中央揃え

次のコードは、セル範囲 A1:D1 をマージし、セル A1 の内容をこのセル範囲に水平に中央配置します。

Sub MergeandCenterContentsHorizontally()

Range("A1:D1").Merge
Range("A1:D1").HorizontalAlignment = xlCenter

End Sub

結果は以下のとおりです。

Merging and Centering Cells Contents in VBA Horizontally 結合 中央揃え

セルの内容を縦に結合して中央に配置する

セル範囲を越えて、セル内容を縦に結合し、中央に配置することができます。対象となるセルをマージし、さらに範囲オブジェクトの垂直方向配置プロパティを中央に設定する必要があります。以下のように、セルA1にテキストがあるとします。

Merging Cells in VBA using Vertical Alignment 結合 垂直方向 中央揃え

次のコードは、セル範囲A1:A4をマージし、セルA1の内容をこのセル範囲に垂直方向に中央配置します。

Sub MergeandCenterContentsVertically()

Range("A1:A4").Merge
Range("A1:D1").VerticalAlignment = xlCenter

End Sub

結果は以下のようになります。

Merging Cells Using Vertical Alignment in VBA 結合 垂直方向 中央揃え

セル範囲にまたがって横方向にセルを結合する

セル範囲を複数の行でまたいで横方向にセルを結合することができます。MergeメソッドのオプションのAcrossパラメータをTrueに設定する必要があります。以下のように、セルA1にテキストがあるとします。

Merge Cells Across in VBA セル 結合

次のコードは、セル範囲 A1:D3をマージします。

Sub MergeCellsAcross()

Range("A1:D3").Merge Across:=True

End Sub

結果は以下のようになります。

Merge Cells Across in VBA セル 結合

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples