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