VBAでセルの結合する方法や、結合を解除する方法について説明します。
Excelのセルは結合したり、結合を解除する事が出来ますが、VBAでも同じことが出来ます。
結合と解除それぞれをコードでご紹介したいと思います。
その他のセルの操作方法については下記の記事をご覧ください。
セルの結合方法
記述方法
セルの結合には「Merge」メソッドを使用します。
使い方は簡単です。
Mergeメソッドは次のように記述します。
Range.Merge
Rangeには結合するセルを指定します。
結合するには複数のセルを選択する必要があります。
また、結合しているセルにさらに結合する処理を追加すると、合わさった状態で結合されます。
サンプルコード
次のコードはRangeもCellsもA2とB2を結合するコードです。
Range
Sub Sample1()
Range("A2:B2").Merge
End Sub
Cells
Sub Sample2()
Range(Cells(2, 1), Cells(2, 2)).Merge
End Sub
結果
結合されメニュー内の「セルを統合して中央揃え」も反映されています。
選択しているセルを結合
選択されているセルを指定するには「Selection」を使用します。
先ほどと同じB2~E7を選択した状態で結合します。
Sub Sample3()
Selection.Merge
End Sub
セルの結合の解除方法
記述方法
結合されたセルの結合を解除するには「UnMergeメソッド」を使用します。
UnMergeメソッドは次のように記述します。
Range.UnMerge
Rangeには結合を解除するセルを指定します。
結合する「Merge」と違い、結合されているセルの一部を指定することで結合されているセルを解除することが可能です。
もちろん結合されている範囲すべてを指定しても解除可能です。
範囲を超えるセルを超えた範囲を指定した場合でも解除可能です。
つまり「Cells」と指定するとシート状のすべての結合を解除できます。
サンプルコード
解除する方法のサンプルコードです。
結合された範囲内を指定して解除
次のようにB2~E7を結合された状態でB2のみ指定して解除するRange、Cellsそれぞれのコードです。
Sub Sample4()
Range("B2").UnMerge
End Sub
Sub Sample5()
Cells(2, 2).UnMerge
End Sub
1つのセルを選択するだけで結合がすべて解除されました。
結合範囲を超えた範囲を指定して解除
先ほどと同じB2~E7を結合された状態でA1~F8までを指定して解除します。
Sub Sample6()
Range("B2:F8").UnMerge
End Sub
Sub Sample7()
Range(Cells(2, 2), Cells(8, 6)).UnMerge
End Sub
こちらでも結合は解除されます。
すべてのセルの結合を解除する
ワークシート上の結合をすべて解除するには次のように記述します。
VBAでセルを操作する場合、結合は厄介な機能でもあります。
そのため下記の様に一気にセルの結合を解除するのも一つです。
ただしもとに戻せなくなる可能性が高いので、バックアップは忘れずに。
Sub Sample8()
Cells.UnMerge
End Sub