'選択範囲の結合 Selection.Merge
'選択範囲の横方向への結合 Selection.Merge True
セル範囲を結合するには「Merge」メソッドを使用します
このコードを使用すると指定したセル範囲が結合セルとなります
またメソッドの引数に「True」を指定することで、横方向のみの結合を行うことが出来ます
Selection.MergeCells = True
本来は結合セルの存在確認に使用するMergeCellsプロパティを使用することでも、例コードの1つ目と同じ動きの結合を行うことが出来ます
コードの動きの解説
各結合の後にある「Cells.UnMerge」は結合セルを解除するコードです
結合の動きを確認するために書いています
Selection.Merge
これを実行すると、選択範囲が1つのセルに結合されます
行列ともに1つのセルとして結合されます
Selection.Merge True
このメソッドの引数にTrueを指定することで横方向のみの結合を行うことが出来ます
画像の動きを確認してください
選択範囲が複数行である場合に、横にのみ結合が実行され、縦方向には結合が実行されていないことが確認できます
これは、通常操作の「横方向に結合」と同じ動きをします
複数行で縦には結合しない場合に一括で指定することが出来る方法です
1つ目では省略されていましたが、この引数を省略するとFalseが指定されていることになります
Selection.MergeCells = True
このコードは、通常は選択範囲に結合セルが存在するかを調べて、存在すればTrueを返すプロパティですが、Trueを代入することで例コードの1つ目と同じ動きを実行できます
ただ、このコードでは横方向の指定が出来ません
ですが、解除する場合も使用でき、Falseを代入するだけで可能です
結合するにはTrueを、解除するにはFalseを代入するというのがイメージしやすいので使い勝手はいいと思います
蛇足ではありますが便利なので紹介します
コード実行時の注意点として、指定範囲に複数のデータが存在する場合はExcelの警告が発生します
結合セルを使用したことがある人なら見たことあると思いますが、複数のデータがある場合にデータの欠損が発生するため警告が表示されます
ここでキャンセルを選択すると、実行時エラーが発生します
動的にセル結合を行う場合にはこの点のみ注意が必要です