Excel VBA セル結合と解除

スポンサーリンク

セルを結合する方法

セルを結合するには、Range【レンジ】オブジェクトのMerge【マージ】メソッド使用する方法とMergeCells【マージセルズ】プロパティを使用する方法の2種類があります。

Merge【マージ】メソッドは引数の設定により、指定したセル範囲を行単位で結合することができます。

MergeCells【マージセルズ】プロパティはブール型の設定値によりセルの結合、解除が行えます。また、値を取得することができるため、指定したセル範囲が結合しているかどうかを調べることが可能です。

RangeオブジェクトのMergeArea【マージエリア】プロパティを使用すると、指定したセルが含まれる結合セル範囲を取得することができます。

セルの結合に関するメソッド一覧

メソッド内容
Merge【マージ】指定したセル範囲を結合します。
UnMerge【アンマージ】指定したセル範囲のセルの結合を解除します。

セルの結合に関するプロパティ一覧

プロパティ内容
MergeArea【マージエリア】指定したセルを含む結合セル範囲を取得します。
MergeCells【マージセルズ】セルの結合や解除の設定と取得をします。

Merge【マージ】メソッド

指定したセル範囲を結合するには、Range【レンジ】オブジェクトのMerge【マージ】メソッドを使用します。

Merge【マージ】メソッドの書式と設定値(引数)の説明

オブジェクト.Merge( Across )

  • オブジェクト(必須)
    結合したいセル範囲をRange【レンジ】オブジェクトで指定します。
  • Across【アクロス】(省略可)
    指定したセル範囲を、「すべて結合する」か「行単位で結合する」かをブール型の値で指定します。
    すべて結合する場合は左上スミのセルの値が設定されます。
    行単位で結合する場合は行の左端の値が設定されます。

    設定値内容
    True行単位で結合します。
    False指定範囲全体を結合します。(既定値)

    ※省略した場合はFalseが指定されます。


A1セル~D5セル範囲を結合するコードと解説

Sub セル結合()
   Application.DisplayAlerts = False
     Range("A1:D5").Merge
   Application.DisplayAlerts = True
End Sub
2行目【 Application.DisplayAlerts = False】
結合セル範囲のセルに値が入力されていると以下のアラートが発生するのでApplication【アプリケーション】オブジェクトのDisplayAlerts【デスプレイアラーツ】プロパティに、Falseを設定してアラートの発生を抑制します。


3行目【Range(“A1:D5”).Merge】
RangeオブジェクトのMerge【マージ】メソッドを使用して、指定したA1セルからD5セルのセル範囲を左上スミのA1セルの値を残して結合します。


4行目【Application.DisplayAlerts = True】
抑制していたアラートの発生を、Application【アプリケーション】オブジェクトのDisplayAlerts【デスプレイアラーツ】プロパティにTrueを設定して解除します。

実行結果

A1セル~D5セル範囲を行単位で結合するコード例

Sub セル結合2()
  Application.DisplayAlerts = False
    Range("A1:D5").Merge True
  Application.DisplayAlerts = True
End Sub

実行結果


UnMerge【アンマージ】メソッド

セルの結合を解除するには、RangeオブジェクトのUnMerge【アンマージ】メソッドを使用します。

UnMerge【アンマージ】メソッドの書式と設定値の説明

オブジェクト.UnMerge

  • オブジェクト(必須)
    結合されているセル範囲をRange【レンジ】オブジェクトで指定、またはRange【レンジ】オブジェクトのMergeArea【マージエリア】プロパティで取得した結合セル範囲を指定します。

A3セル~B4セル範囲の結合セルを解除するコード例

Sub 結合解除()
   Range("A3:B4").UnMerge
End Sub

A3セルを含む結合セルを解除するコード例

Sub 結合解除2()
   Range("A3").MergeArea.UnMerge
End Sub

MergeArea【マージエリア】プロパティ

指定されたセルがある結合セル範囲を、Rangeオブジェクトで取得するにはRangeオブジェクトのMergeArea【マージエリア】プロパティを使用します。

MergeArea【マージエリア】プロパティの書式と設定値

オブジェクト.MergeArea
【戻り値】オブジェクト型(Range)の値

  • オブジェクト(必須)
    結合セル内の単一セルをRange【レンジ】オブジェクトで指定します。指定した単一セルが結合されていない場合は、指定した単一セルが返ります。

A2セルを含む結合セル範囲のセルアドレスを取得するコード例

Sub 結合セル取得()
  Dim 結合範囲 As Range
  Set 結合範囲 = Range("A2").MergeArea
  MsgBox 結合範囲.Address
End Sub

実行結果


MergeCells【マージセルズ】プロパティ

指定したセル範囲の、セルの結合や結合解除を設定や状態の取得をするにはRange【レンジ】オブジェクトのMergeCells【マージセルズ】プロパティを使用します。

MergeCells【マージセルズ】プロパティの書式と設定値

【取得】
オブジェクト.MergeCells
【戻り値】バリアント型(Variant) の値
【設定】
オブジェクト.MergeCells = 設定値

  • オブジェクト(必須)
    結合するセル範囲や結合を解除するセル範囲、状態を取得するセルを、Range【レンジ】オブジェクトで指定します。
  • 設定値(必須)
    指定セル範囲を結合するか結合解除するかをブール型の値で指定します。

    設定値内容
    True指定セル範囲を結合します。
    False指定セル範囲のセルの結合を解除します。

※値の取得の場合は指定したセルが結合されている場合はTrue、結合されていない場合はFalseが返ります。


A2セルが結合しているかどうかを調べるコード例

Sub 結合確認()
MsgBox Range("A2").MergeCells
End Sub

実行結果


以上で、セルを結合する方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告