Home > 即効テクニック > Excel VBA > セル操作関連のテクニック > セルを結合する(MergeCellsプロパティ)

即効テクニック

セル操作関連のテクニック

セルを結合する(MergeCellsプロパティ)

(Excel 2000)
MergeCellsプロパティにTrueを設定するとセル範囲を結合し、Falseで逆にセル範囲の結合を解除します。結合させるには複数のセルを指定する必要がありますが、結合を解除する際には結合セル中の1つ以上のセルを指定するだけで解除できます。

 構文  Object.MergeCells     設定/取得

 設定項目    内容
  Object      Rangeオブジェクト
●サンプル1●
Sub MergeCellsSamp1()

   Range("A1:C5").MergeCells = True '----(1)  A1〜C5を結合

End Sub
(1)のステートメントでA1〜C5を結合しています。結合させるための記述は非常に単純ですが、実行結果は複雑です。
対象セル範囲の中に値が入力されたセルが2つ以上ある場合、データを失うことになりますので、確認メッセージが表示されます。
ここで[キャンセル]ボタンを押すとMergeCellsプロパティを変更できないというエラーが発生しますので、ケースに応じて次のようにプログラミングを行なってください。

次のサンプル2は、確認メッセージを表示しないでセルを結合します。結合するとセル範囲のデータのうち、最上端にあるデータ以外は失われます。
●サンプル2●
Sub MergeCellsSamp2()

   Application.DisplayAlerts = False  '----確認メッセージを非表示
   Range("A1:C5").MergeCells = True
   Application.DisplayAlerts = True   '----確認メッセージを表示

End Sub
次のサンプル3はデータが失われる場合にはユーザーが結合されるかどうか判断するようになっています。[キャンセル]ボタンを押してもエラーは無視されます。
●サンプル3●
Sub MergeCellsSamp3()

    On Error Resume Next   '----エラーが発生しても無視
    Range("A1:C5").MergeCells = True

End Sub
On Error Resume Nextステートメントを先に記述しておけば、エラーが発生しても、実行を中断せずに次のステートメントを実行できます。