構文
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】



コメント