[Range].MergeAreaプロパティの返り値の謎(Excel)

[Range].MergeAreaプロパティの返り値の謎

単にRangeオブジェクトのことがよく分かっていないだけかも知れないが、恥を承知で書く。

MergeAreaプロパティの返り値

f:id:akashi_keirin:20180908214759j:plain

こんなシートがあったとする。

J1セルとJ2セルが結合されている。

したがって、J1セルのMergeAreaプロパティとJ2セルのMergeAreaプロパティとは、同じRangeオブジェクトを返すはずだ。

で、イミディエイト・ウインドウに

?range("J1").MergeArea = range("J2").MergeArea

f:id:akashi_keirin:20180908214807j:plain

と入力して[Enter]をポチッ。

f:id:akashi_keirin:20180908214815j:plain

あっ、非常に素人臭いことをしてしまった……(いや、素人なんですけどね)。

気を取り直して、イミディエイト・ウインドウに

?range("J1").MergeArea is range("J2").MergeArea

f:id:akashi_keirin:20180908214824j:plain

と入力して[Enter]をポチッ。

f:id:akashi_keirin:20180908214832j:plain

ファッ!?

Falseが返るんすかーーー?!

Addressプロパティで比較する

ならばと今度は、Addressプロパティを調べてみる。

イミディエイト・ウインドウに、

?range("J1").MergeArea.Address
?range("J2").MergeArea.Address

と入力して、それぞれ結果を見てみると、

f:id:akashi_keirin:20180908215238j:plain

ごく当り前の結果が出ている。

当然、

?range("J1").MergeArea.Address = range("J2").MergeArea.Address

だと、

f:id:akashi_keirin:20180908214848j:plain

となる。

おわりに

あるセルと別のあるセルとが同じ結合セルに含まれているかどうかを判定するには、MergeAreaプロパティの返り値であるRangeオブジェクトの何らかのプロパティの助けを借りねばならんのだろうか。