この記事では、結合されたセルの範囲をVBAを使って取得したり、セルを結合・解除する操作、そしてセルが結合されているかを判定する方法を実際のVBAコードも含めて説明します。
ExcelをVBAを使って自動化するのであれば、正直、セルの結合自体は行わないほうがよいのですが、どうしても結合セルを含むExcelブックや、セルを結合する手順が含まれるフォームはあるでしょう。
VBAを学習するのであれば、様々なExcelの環境に対応できるよう「結合」の操作についても学習しておきましょう。
参考までにですが、根本的な考え方としては、現行の業務から「セルの結合」の必要性自体を排除するほうが優先です。業務の自動化は、現行手順の改善も含めて考えるべきなのです。
VBA│結合されたセルの範囲を取得する
この章では、Excel上で結合されたA1:C2のセルから結合範囲を取得するVBAコードを紹介します。結合範囲は変数「s」に取得し、取得結果である結合範囲を確認するため、最後にメッセージボックスで表示する処理も加えています。
基本構文
object . MergeArea
- object = 範囲を調べるセル位置
この例では、A1です - MergeArea = 結合範囲を取得する定型文
Rangeプロパティ
Sub Sample()
Dim s As String
s = Range(“A1”).MergeArea.Address
MsgBox s
End Sub
Cellsプロパティ
Sub Sample()
Dim s As String
s = Cells( 1, 1 ).MergeArea.Address
MsgBox s
End Sub
VBA│セルを結合する
この章では、ExcelのセルA1からセルC2までを結合するVBAコードを紹介します。
基本構文
object . Merge
- object = 結合するセルの範囲
この例では、A1:C2です - Merge = セルを結合する定型文
Rangeプロパティ
Sub Sample()
Range(“A1:C2”).Merge
End Sub
Cellsプロパティ
Sub Sample()
Range(Cells( 1 , 1 ),Cells( 2 , 3 )).Merge
End Sub
VBA│セルの結合を解除する
この章では、Excel上で結合されているセルA1からセルC2までの結合を解除するVBAコードを紹介します。
基本構文
object . UnMerge
- object = 結合を解除するセル
この例では、A1です※ - UnMerge = セルの結合を解除する定型文
Rangeプロパティ
Sub Sample()
Range(“A1”).UnMerge
End Sub
Cellsプロパティ
Sub Sample()
Cells( 1 , 1 ).UnMerge
End Sub
VBA│セルが結合されているかどうか判定する
この章では、Excel上のセルを指定してそのセルが結合されているかどうかを判定するVBAコードを紹介します。 判定結果は変数「c」に取得し、最後にメッセージボックスで表示する処理も加えています。
基本構文
object . MergeCells
- object = 結合を判定するセル
この例では、A1です※ - MergeCells = セルの結合を判定する定型文
Rangeプロパティ
Sub Sample()
Dim c As String
c = Range(“A1”).MergeCells
MsgBox c
End Sub
Cellsプロパティ
Sub Sample()
Dim c As String
c = Cells( 1 , 1 ).MergeCells
MsgBox c
End Sub