【Excel VBA】セルを結合する(Merge)

はじめに

今回は、セルを結合する方法について解説します。
ユーザへ見やすくするために、セルを結合することは多いかと思います。
本記事では、基本構文から汎用的なサンプルコードまで掲載していますので、ぜひ最後までお付き合いください。

この記事を読むメリット
  • セルを結合する方法が分かります。
  • セル結合時の注意点(警告メッセージの無視など)も詳しく解説します。
  • コピペで使える実践的なサンプルコードを掲載しています。

基本情報

Mergeメソッド

セルを結合するには、RangeオブジェクトのMergeメソッドを使用します。

構文

構文

Rangeオブジェクト.Merge(Across)

緑文字引数です。

Rangeオブジェクトは、結合する隣接した複数セルを指定します。

引数

#引数必須/任意説明
1Across任意TrueかFalseを指定。
Trueの場合:行単位で結合する
False および 省略した場合:指定したすべてのセル範囲を結合する。
Mergeメソッド – 引数
りゅう

基本的には、False(引数指定なし)で問題ないです!

結合対象のセルに複数の値があった場合、警告メッセージが表示されます。
途中で処理が停止してしまうため、警告メッセージをOFFにしましょう。

また、指定した範囲の左上端にあるセルに入力される値が、結合後のセルに表示されます。
左上端以外の値は消えてしまうため注意してください。

サンプルコード

セルを結合する(Range指定)

サンプルコード
Public Sub mergeCell()

    ' 警告メッセージをOFFにする
    Application.DisplayAlerts = False

    ' A1セルとA2セルを結合する
    Worksheets("Sheet1").Range("A1:A2").Merge

    ' 警告メッセージをONにする
    Application.DisplayAlerts = True
End Sub

都度、警告メッセージのON/OFFをするのは冗長になってしまうため、共通化をするのがオススメです。

サンプルコード – 共通化  クリックで展開
サンプルコード
Public Sub main()
    Dim mergeRange As Range ' 結合対象セル

    ' 結合対象セルをセット
    Set mergeRange = Worksheets("Sheet1").Range("A1:B1")

    ' セルの結合実行
    Call mergeCell(mergeRange)
End Sub

Private Sub mergeCell(ByVal mergeRange As Range)

    ' 警告メッセージをOFFにする
    Application.DisplayAlerts = False

    ' セルを結合する
    mergeRange.Merge

    ' 警告メッセージをONにする
    Application.DisplayAlerts = True
End Sub

セルを結合する(Cells指定)

サンプルコード
Public Sub mergeCell()

    ' 警告メッセージをOFFにする
    Application.DisplayAlerts = False

    ' A1セル ~ B2セルを結合する
    Worksheets("Sheet1").Range(Cells(1, 1), Cells(2, 2)).Merge

    ' 警告メッセージをONにする
    Application.DisplayAlerts = True
End Sub
りゅう

先ほど紹介した通り、共通化がオススメです。

サンプルコード – 共通化  クリックで展開
サンプルコード
Public Sub main()
    Dim mergeRange As Range ' 結合対象セル

    ' 結合対象セルをセット
    Set mergeRange = Worksheets("Sheet1").Range(Cells(1, 1), Cells(2, 2))

    ' セルの結合実行
    Call mergeCell(mergeRange)
End Sub

Private Sub mergeCell(ByVal mergeRange As Range)

    ' 警告メッセージをOFFにする
    Application.DisplayAlerts = False

    ' セルを結合する
    mergeRange.Merge

    ' 警告メッセージをONにする
    Application.DisplayAlerts = True
End Sub

最後に

今回は、セルの結合方法について解説しました。

セルの結合については注意点も多い為、本記事を読んで安全にご使用ください。

本記事が、皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA