【Excel VBA】セルが結合されているかを判定する(MergeCells)

はじめに

今回は、セルを結合する方法について解説します。
本記事では、基本構文から汎用的なサンプルコードまで掲載していますので、ぜひ最後までお付き合いください。

この記事を読むメリット
  • セルが結合されているかを判定する方法が分かります。
  • 判定時の注意点についても詳しく解説します。
  • コピペで使える実践的なサンプルコードを掲載しています。

基本情報

MergeCellsプロパティ

「セルが結合されているか」の情報を取得するには、RangeオブジェクトのMergeCellsプロパティを使用します。

構文

構文

Rangeオブジェクト.MergeCells

戻り値

  • True:Rangeオブジェクトで指定されたセルが結合されている
  • False:Rangeオブジェクトで指定されたセルが結合されていない

Rangeオブジェクトに複数セルを指定できますが、「結合されているセル」と「結合されていないセル」が混在する場合はNullが返却されます。

りゅう

MergeCellsプロパティは、値の設定も可能です。
Trueを設定すると、セルの結合が可能できます。
Falseの場合はセルの結合を解除できます。

めい

別記事にて、セルの結合と結合解除については解説しています。

サンプルコード

セルが結合されているかを判定する(Range指定)

サンプルコード
Public Sub execUnMergeAllCell()
    Dim rng As Range    ' チェック対象セル

    ' チェック対象セルをセット
    Set rng = Range("A1:C3")

    If rng.MergeCells Then

        ' セルが結合されている場合
        MsgBox rng.Address(0, 0) & "セルは結合されています"
    ElseIf rng.MergeCells = False Then

        ' セルが結合されていない場合
        MsgBox rng.Address(0, 0) & "セルは結合されていません"
    Else

        ' セルの結合が混在している場合
        MsgBox rng.Address(0, 0) & "セルは、結合セルと非結合セルが混在しています。"
    End If
End Sub

セルが結合されているかを判定する(Cells指定)

サンプルコード
Public Sub execUnMergeAllCell()
    Dim rng As Range    ' チェック対象セル

    ' チェック対象セルをセット
    Set rng = Range(Cells(1, 1), Cells(3, 3))

    If rng.MergeCells Then

        ' セルが結合されている場合
        MsgBox rng.Address(0, 0) & "セルは結合されています"
    ElseIf rng.MergeCells = False Then

        ' セルが結合されていない場合
        MsgBox rng.Address(0, 0) & "セルは結合されていません"
    Else

        ' セルの結合が混在している場合
        MsgBox rng.Address(0, 0) & "セルは、結合セルと非結合セルが混在しています。"
    End If
End Sub

最後に

今回は、セルが結合されているかを判定する方法を解説しました。

本記事が、皆さんのお力になれば幸いです!

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

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA