構文
Range.MergeCells/Range.MergeCells = expression
expression・・・Trueセルを結合する。Falseセル結合を解除する
Range.MegeCellsのみであれば、セルが結合されているかどうか判別します。
Range.MegeCells =True or False を指定するとセル結合、もしくはセル結合解除が可能です。
※セル結合、結合解除はMergeプロパティでも設定可能です。
Range.MegeCells =True or False を指定するとセル結合、もしくはセル結合解除が可能です。
※セル結合、結合解除はMergeプロパティでも設定可能です。
セルが結合されているかどうか判断するサンプルコード
Public Sub test() '■サンプルでA1:B3を結合する Range("A1:B3").Merge True '■結合されていたらどの位置でもTrueを返す Debug.Print Range("A1").MergeCells 'True Debug.Print Range("B2").MergeCells 'True '■結合されていなければFalseを返す Debug.Print Range("A4").MergeCells 'False '■If文で判定も可能 If Range("A4").MergeCells = True Then Debug.Print "true" Else Debug.Print "false" '今回は結合されていないのでFalse End If End Sub
セルの結合、セル結合解除を一行でコードを書く
Boolean型のフラグを反転させるコードを1行で書く(True→False/False→True)【ExcelVBA】と考えは一緒です。
Public Sub test() '■セル「A1:B3」が結合されている →結合解除 '■セル「A1:B3」が結合されていない→結合 Range("A1:B3").MergeCells = Not Range("A1:B3").MergeCells End Sub
注意点
- 結合セルというのは見た目だけは良いです。見た目だけは。
VBAで使う場合は注意しないと意図しない不具合を誘発します。
結合セルの初期化(ClearContents)のエラーを回避する
セルの結合は厄介?結合で実行結果が異なる【エクセルマクロ】 - 今回はRange(“A1”)とコードには書いていますが、実際はワークシートを付けて可読性を上げましょう。
ワークシート名を変数にSetし、短い名前で利用する【マクロ初級者必読】
関連記事
セルを結合/結合解除する【Mergeメソッド/UnMergeメソッド】【ExcelVBA】
「Ctrl+Shift+Q」で「セル結合・セル結合解除」をパーツ化する。【エクセルマクロ】
結合セルの情報を取得する【MergeAreaプロパティ】【ExcelVBA】
コメント