Home » Excel VBA Rangeオブジェクト » 結合セル » MergeCellsとMergeの違い

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2403(ビルド17425.20000クイック実行)ベータチャネル

Excel VBAの、結合セルに関する2つのプロパティRange.MergeCellsとRange.MergeAreaの違いについて、ご紹介しています。

同じく結合セルに関して、MergeCellsとMergeの違いが気になる方も少なくないようです。

このサイト『インストラクターのネタ帳』へも、
「vba mergecells merge 違い」
といった検索キーワードで時折アクセスがあります。

[スポンサードリンク]

MergeCellsはプロパティ・Mergeはメソッド

最初に、MergeCellsはプロパティで、Mergeはメソッドだということをお伝えします。

オブジェクトブラウザーの、メンバーペインのアイコンや詳細ペインの「Property」「Sub」といった表示から、

MergeCellsがプロパティで、Mergeがメソッドだということが読み取れます。

Range.MergeCellsは結合セルかどうかを返すプロパティ

MergeCellsは、Rangeオブジェクトが結合セルかどうかを返すプロパティで、結合セルのときにTrueを返してくれます。

例えば、A1:B1セルが結合されているときに、以下の3つの式はいずれもTrueを返します。

Range("A1").MergeCells
Range("B1").MergeCells
Range("A1:B1").MergeCells

アクティブシートのA1:B1セルを結合しておいてから、イミディエイトウィンドウでコードを実行すると、以下のような結果になることをご確認ください。

? Range("A1").MergeCells
True

? Range("B1").MergeCells
True

? Range("A1:B1").MergeCells
True

A2セルが結合されていなければ、以下のようにRange.MergeCellsプロパティはFalseを返します。

? Range("A2").MergeCells
False

Rangeオブジェクトが結合セルだったときにTrueを、結合セルでなければFalseを返すのが、MergeCellsプロパティです。

MergeCellsは設定も可能なプロパティ

MergeCellsプロパティは読み取り専用のプロパティではなく、設定も可能です。

読み取り専用のプロパティであれば、MergeAreaのようにオブジェクトブラウザーの詳細ペインに「読み取り専用」と表示されますが、

MergeCellsの詳細ペインには下図のとおり「読み取り専用」表示がありません。

A1:B1セルが結合されているときに、

Range("A1:B1").MergeCells = False

または、

Range("A1").MergeCells = False

あるいは、

Range("B1").MergeCells = False

を実行すると、A1:B1セルの結合が解除されます。

逆に、アクティブシートのA1:B1セルが結合されていないときに

Range("A1:B1").MergeCells = True

を実行すると、A1:B1セルが結合されます。

Range.Mergeはセルを結合するメソッド

Mergeはメソッドで、呼び出すとセルの結合が行われます。

A1セル・B1セルが、結合されていない単独セルのときに、

Range("A1:B1").Merge

を実行すると、A1:B1が結合されます。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 結合セル » MergeCellsとMergeの違い

「結合セル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.