VBAでセルの結合を操作する│結合セルの範囲・結合・解除・判定

この記事では、結合されたセルの範囲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 = セルの結合を解除する定型文

実際には、セルの結合の解除は、結合されているセルのうち、どちらかひとつのセルを指定すれば解除することができます。つまり、この例でいう基本構文のobject箇所はA1~C2のうち、どちらを指定しても同等の結果となります。

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 = セルの結合を判定する定型文

実際には、セルの結合の判定は、結合されているセルのうち、どちらかひとつのセルを指定すれば判定することができます。つまり、この例でいう基本構文のobject箇所はA1~C2のうち、どちらを指定しても同等の結果となります。

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

よかったらシェアしてね!
  • URLをコピーしました!
目次