カテゴリ: Excel VBA 更新日: 2026/04/15

Excel VBAでセルの結合・解除・中央寄せを自動化!Mergeの使い方を完全解説

セルの結合・解除・中央寄せをVBAで制御する方法
セルの結合・解除・中央寄せをVBAで制御する方法

先生と生徒の会話形式で理解しよう

生徒

「エクセルで見出しを作るとき、複数のセルを一つにくっつけたり、文字を真ん中に寄せたりしますよね。あれをVBAで自動でやる方法はありますか?」

先生

「もちろんありますよ!VBAの Merge という命令を使えば、セルの結合が一瞬で終わります。解除や中央寄せもセットで覚えれば、資料作りがすごく楽になりますよ。」

生徒

「手作業だと面倒な結合も自動化できるんですね。初心者でも簡単に書けますか?」

先生

「大丈夫です。セルの範囲を選んで、『くっつけて!』と命令を出すだけですから。基本の書き方から一緒にマスターしていきましょう!」

1. セルの結合とは?VBAで操作するメリット

1. セルの結合とは?VBAで操作するメリット
1. セルの結合とは?VBAで操作するメリット

Excel(エクセル)の「セルの結合」とは、隣り合った複数のマス目(セル)を合体させて、一つの大きなセルとして扱う機能のことです。主に表のタイトルや、共通する項目をまとめるときに使われます。VBA(ブイビーエー)というプログラミング言語を使ってこの操作を自動化すると、決まった形の報告書を大量に作成する際、マウスを何度も動かす手間が完全になくなります。

パソコンを触り始めたばかりの方にとって、細かいマウス操作は肩が凝る原因になりますよね。VBAなら、「A1からC1までを結合する」という命令を一度書いておけば、次からはボタン一つでパソコンが正確に作業を終わらせてくれます。これが 業務効率化 の第一歩です。

2. Mergeメソッドでセルを結合する基本

2. Mergeメソッドでセルを結合する基本
2. Mergeメソッドでセルを結合する基本

セルを結合するために使う命令は Merge(マージ) と言います。英語で「合併する」や「一つにまとめる」という意味があります。使い方は、対象となるセルの範囲(Range)を指定して、その後にドット(.)を付けて Merge と書くだけです。

例えば、A1セルからC1セルまでを一つにしたいときは、Range("A1:C1").Merge と記述します。このとき、結合されるセルの中に文字が入っている場合は、一番左上にあるセルの文字だけが残り、他のセルの文字は消えてしまうというエクセルのルールがあります。VBAでもこの動きは同じですので、大切なデータが消えないように注意しながら使いましょう。


Sub SimpleMerge()
    ' A1セルからE1セルまでを一つの大きなセルに合体させます
    Range("A1:E1").Merge
End Sub

3. UnMergeメソッドで結合を解除する方法

3. UnMergeメソッドで結合を解除する方法
3. UnMergeメソッドで結合を解除する方法

一度くっつけたセルを、元のバラバラの状態に戻したいときは UnMerge(アンマージ) という命令を使います。先ほどの Merge の頭に「打ち消し」を意味する Un が付いた言葉です。

結合を解除したいセル、あるいは結合されている範囲を含むセルを指定して UnMerge を実行します。解除された後は、文字は元の場所(一番左上のセル)に残ります。間違えて結合してしまった場合や、データの加工がしやすいように一時的に解除したいときに非常に役立ちます。プログラミングでは、このように「やったことを元に戻す」方法もセットで覚えるのが上達のコツです。


Sub SimpleUnMerge()
    ' A1セルが含まれる結合範囲をバラバラの状態に戻します
    Range("A1").UnMerge
End Sub

4. 文字を真ん中に!中央寄せ(配置)の設定

4. 文字を真ん中に!中央寄せ(配置)の設定
4. 文字を真ん中に!中央寄せ(配置)の設定

セルを結合した後は、中の文字を中央に配置したくなりますよね。これを行うには HorizontalAlignment(ホリゾンタル・アライメント) というプロパティを使います。「水平方向(横方向)の整列」という意味の長い単語ですが、覚え方は「横の並び」で大丈夫です。

文字を中央に寄せるには、このプロパティに xlCenter(エクセル・センター)という値を設定します。これを結合の命令と組み合わせることで、一瞬で見栄えの良い見出しが出来上がります。パソコン初心者の方には呪文のように見えるかもしれませんが、一つひとつの言葉に「横方向の整列を真ん中(センター)にする」という明確な意味があるのです。


Sub MergeAndCenter()
    ' B2からD2を結合して、文字を横方向の真ん中に配置します
    With Range("B2:D2")
        .Merge
        .HorizontalAlignment = xlCenter
    End With
End Sub

5. 縦方向の中央寄せもマスターしよう

5. 縦方向の中央寄せもマスターしよう
5. 縦方向の中央寄せもマスターしよう

横方向だけでなく、セルの高さ(縦方向)の真んなかに文字を置きたいこともあります。これには VerticalAlignment(バーティカル・アライメント) を使います。「垂直方向(縦方向)の整列」という意味です。

設定する値は、横のときと同じ xlCenter を使います。例えば、大きな結合セルのちょうど真ん中にタイトルをドーンと置きたいときは、横(Horizontal)と縦(Vertical)の両方をセンターに設定します。これで、どんなにセルの高さが変わっても、常に文字が真ん中に位置する美しいシートが自動で作れます。見た目にこだわる資料作りには欠かせないテクニックです。

6. DisplayAlertsで警告メッセージを非表示にする

6. DisplayAlertsで警告メッセージを非表示にする
6. DisplayAlertsで警告メッセージを非表示にする

手作業でセルを結合しようとしたとき、「セルを結合すると、左上の値のみが保持され、他の値は破棄されます」という警告画面が出たことはありませんか?VBAでプログラムを動かしている途中にこの画面が出て止まってしまうと、せっかくの自動化が台無しです。

これを防ぐために、DisplayAlerts(ディスプレイ・アラート) という設定を一時的に False(偽=オフにする)にします。こうすることで、エクセルからの確認メッセージを無視して、どんどん結合処理を進めることができます。処理が終わった後は、忘れずに True(真=オンにする)に戻してあげるのが、パソコンに優しいプログラミングの作法です。


Sub SmartMerge()
    ' エクセルの警告画面が出ないように一時的にオフにします
    Application.DisplayAlerts = False
    
    ' 値が入っている複数のセルを結合します(警告が出ずに実行されます)
    Range("A5:B6").Merge
    
    ' 警告の設定を元に戻します
    Application.DisplayAlerts = True
End Sub

7. 指定した範囲が結合されているか確認する方法

7. 指定した範囲が結合されているか確認する方法
7. 指定した範囲が結合されているか確認する方法

プログラムの中で、「もしこのセルが結合されていたら、解除する」というふうに、今の状態をチェックしたいときがあります。これには MergeCells(マージ・セルズ) プロパティを使います。これは、「結合されているかな?」という問いかけに対して、YesかNo(TrueかFalse)で答えてくれる機能です。

例えば、If Range("A1").MergeCells = True Then と書けば、「もしA1が結合されていたら」という条件を作ることができます。これを使うことで、エラーの出にくい、より高度な自動化プログラムが作れるようになります。条件によって動きを変えるのは、プログラミングの醍醐味(だいごみ)ですね。

8. 結合セルを扱う際の注意点とコツ

8. 結合セルを扱う際の注意点とコツ
8. 結合セルを扱う際の注意点とコツ

セルの結合は見た目には綺麗ですが、実はVBAでデータを並び替えたり、集計したりするときには「邪魔」になってしまうことがあります。結合されたセルがあると、パソコンが「どこがデータの区切りか」を判断できなくなる場合があるからです。

そのため、実務でのコツは「計算に使う表の中身」は結合せず、「一番上のタイトル部分」や「印刷用のシート」だけを結合することです。データの保存用シートと、見た目重視の出力用シートを分けるという考え方を持つと、エクセルVBAのスキルはぐんと向上します。見た目と使い勝手のバランスを取るのが、プロの技と言えるでしょう。

9. 繰り返し処理と組み合わせて一括結合

9. 繰り返し処理と組み合わせて一括結合
9. 繰り返し処理と組み合わせて一括結合

最後に、一歩進んだ応用を紹介します。VBAの「繰り返し(ループ)」という機能を使えば、1行目、2行目、3行目……と順番に同じ範囲を結合していくことができます。例えば、毎日何百行も続くデータの、特定の項目を一つずつ結合していくのは地獄のような作業ですが、VBAなら一秒で完了します。

「この列の同じ名前が並んでいるところだけを結合して」という指示をパソコンに出せるようになると、もう手放せません。まずは今回学んだ MergeUnMerge、そして Center の三つの魔法を覚えて、自分のエクセルシートを自由自在に操る楽しさを味わってみてください。最初は失敗しても大丈夫。一つひとつの命令を確認しながら、ゆっくり進んでいきましょう!

カテゴリの一覧へ
新着記事
New1
Excel VBA
Excel VBAでセルの結合・解除・中央寄せを自動化!Mergeの使い方を完全解説
New2
Office Scripts
Office ScriptsとPower Automateの接続準備をやさしく解説!Excel自動化をはじめる第一歩
New3
Office Scripts
Office Scriptsで作る動的テーブル構造!Excel自動更新テーブル(ListObject)完全ガイド
New4
Office Scripts
Office Scriptsの開発環境をやさしく解説!スクリプト共有とチーム開発で進めるExcel自動化の基本
人気記事
No.1
Java&Spring記事人気No1
Excel VBA
Excel VBAで列の追加・行の削除を自動化!InsertとDeleteの使い方を初心者向けに徹底解説
No.2
Java&Spring記事人気No2
Excel VBA
Excel VBAでセルに数式を入力!FormulaとFormulaR1C1の違いを徹底解説
No.3
Java&Spring記事人気No3
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
No.4
Java&Spring記事人気No4
Office Scripts
Office Scriptsで外部API連携!fetchとBearer Tokenで認証付きAPIを使う方法【Excel自動化×HTTP通信入門】
No.5
Java&Spring記事人気No5
Office Scripts
Office Scriptsで別ブックを開いてデータ取得する方法|OneDrive・SharePoint連携でExcel自動化
No.6
Java&Spring記事人気No6
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
No.7
Java&Spring記事人気No7
Office Scripts
Office Scriptsでセル値を一括変換!Excel自動化でトリム・置換・整形をする方法
No.8
Java&Spring記事人気No8
Excel VBA
Excel VBA参照設定エラー「参照が見つかりません」を完全解説!初心者でも原因と対処法がわかる