'選択範囲が結合セルかを調べる Debug.Print Selection.MergeCells
'シート内に結合セルがあるかを調べる(Nullなら存在有) Debug.Print Cells.MergeCells
指定したセルが結合セルかどうかを調べるには「MergeCells」プロパティを使用します
このプロパティの返し値によって判定を行います
指定したセルが結合されていれば「True」、結合されていなければ「False」をそれぞれ返します
さらに、その両方が含まれていれば「Null」が返されます
なお、このプロパティは設定も可能です
Trueを代入すると結合セルとなり、Falseを代入すると非結合セルとなります
実際の書き方は以下の記事にありますので確認してください
コード解説

この画像の前提として、A2とB2が結合されたセルです
Debug.Print Selection.MergeCells
結合されたセルが選択状態になっていますので、このコードを実行するとTrueが返されます
つまり、選択している範囲は結合されて1セルとなってい状態と判定できます
このプロパティは、単体での判定でしかTrueを返しません
例え指定範囲が全て結合されたセルだとしてもNullが返されてしまいます
逆にすべてが結合されていないセルであればFalseが返されます
そしてその仕様から、シート全体などの範囲で使用することで結合セルの存在を調べられます
Debug.Print Cells.MergeCells
このコードを実行するとNullが返されます
結合セルとされていないセルが範囲内に含まれているからです
画像の最後の動きの部分を確認してください
再度取得する前に、すべての結合を解除しています
その状態でプロパティを取得させると、Falseが返されます
つまり、シート内に結合セルが存在しないことを意味します
どのセルが、という所まではこのプロパティで調べられませんが、存在するかどうかは調べられます
基本的に結合セルとは、見栄えなどの書式的な使い方が多く、VBA泣かせのセルです
あったら何とか解除してしまえないかと思ってしまいますが、この判定や解除をうまく活用して乗り越えてください