Excel VBA セルを結合する方法、結合を解除する方法

セルの操作

VBAでセルの結合する方法や、結合を解除する方法についてご説明します。

Excelのセルは結合したり、結合を解除する事が出来ますが、VBAでも同じことが出来ます。

VBAでセルを扱う場合に、セルの結合を対処する事がよくあります。

結合と解除それぞれのケースのコードをご紹介したいと思います。

その他のセルの操作方法については下記の記事をご覧ください。

1.セルの結合、解除の方法

セルの結合には「Mergeメソッド」を、結合の解除には「UnMergeメソッド」を使用します。

それぞれ使い方は簡単です。

Mergeメソッド

Mergeメソッドは次のように記述します。

Range.Merge

Rangeには結合するセルを指定します。

結合するということは複数のセルを選択する必要があります。

また、結合しているセルにさらに結合する処理を追加すると、合わさった状態で結合されます。

UnMergeメソッド

UnMergeメソッドは次のように記述します。

Range.UnMerge

Rangeには結合を解除するセルを指定します。

結合する「Merge」と違い、結合されているセルの一部を指定することで結合されているセルを解除することが可能です。

もちろん結合されている範囲すべてを指定しても解除可能です。

範囲を超えるセルを超えた範囲を指定した場合でも解除可能です。

2.結合、解除のサンプルコード

それでは結合する方法、解除する方法のサンプルコードです。

結合するコード

結合するコードは複数のセルを指定する必要があり、RangeとCellsと記述方法あります。

いくつかのケースのコードを紹介したいと思います。

2つの隣り合ったセルを結合

次のように上下、左右で隣り合ったセルを結合するコードです。

Sub Sample1()

Range("A2:B2").Merge

'もしくは
Range(Cells(2, 1), Cells(2, 2)).Merge

End Sub
Sub Sample2()

Range("B2:B3").Merge

'もしくは
Range(Cells(2, 2), Cells(3, 2)).Merge

End Sub

それぞれ実行すると上記の様に結合されます。

これを連続してコードを実行したら、次のように合わさって結合されます。

3つ以上のセルの結合

こちらも基本的な考え方は同じで、指定するセルの選択を広くするだけになります。

次のようにB2~E7まで指定したいと思います。

Sub Sample3()

Range("B2:E7").Merge

'もしくは
Range(Cells(2, 2), Cells(7, 5)).Merge

End Sub
選択しているセルを結合

最後に選択されているセルを結合する方法です。

選択されているセルを指定するには「Selection」を使用します。

先ほどと同じB2~E7を選択した状態で結合します。

Sub Sample4()

Selection.Merge

End Sub

3.結合を解除するサンプルコード

結合を解除する場合は結合されている範囲内のセルの一部を指定して解除します。

もちろん結合されている範囲すべてを指定しても解除可能です。

範囲を超えるセルを超えた範囲を指定した場合でも解除可能です。

結合された範囲内を指定して解除

次のようにB2~E7を結合された状態でB2のみ指定して解除します。

Sub Sample5()

Range("B2").UnMerge

'もしくは
Cells(2, 2).UnMerge

End Sub

1つのセルを選択するだけで結合がすべて解除されました。

結合範囲を超えた範囲を指定して解除

先ほどと同じB2~E7を結合された状態でA1~F8までを指定して解除します。

Sub Sample6()

Range("B2:F8").UnMerge

'もしくは
Range(Cells(2, 2), Cells(8, 6)).UnMerge

End Sub

こちらでも結合は解除されます。

すべてのセルの結合を解除する

ワークシート上の結合をすべて解除するには次のように記述します。

VBAでセルを操作する場合、結合は厄介な機能でもあります。

そのため下記の様に一気にセルの結合を解除するのも一つです。

ただしもとに戻せなくなる可能性が高いので、バックアップは忘れずに。

Sub Sample7()

Cells.UnMerge

End Sub
タイトルとURLをコピーしました