【2026年9月最新】ExcelVBAのセル結合・解除(Merge・UnMerge・MergeCells)完全解説|非エンジニアはClaude Codeで自動化する方法
「VBAでセルを結合したいけど、Merge・UnMerge・MergeCellsのどれを使えばいいのか分からない」「結合したセルの値をVBAで取得しようとしたらエラーになった」——Excel業務でマクロを書いている方なら、一度はこの壁にぶつかったことがあるはずです。
セルの結合は、請求書や見積書、報告書のフォーマットを整える上で欠かせない機能です。しかしVBAでセル結合を操作しようとすると、結合セル特有のクセに振り回されて、思ったように処理が動かないケースが少なくありません。
この記事では、VBAでセルを結合・解除する3つの方法(Merge・UnMerge・MergeCells)を基礎から整理し、結合セルの値取得・判定方法、業務で実際に起きるトラブルとその対策までを網羅的に解説します。さらに後半では、そもそもVBAを書かずにAIにセル結合作業を任せてしまうという、非エンジニアの経営者・管理職向けの選択肢もご紹介します。
この記事を最後まで読むと、次の6つが明確になります。
01 MERGE BASICS セル結合とは何か・業務で使われる理由 なぜ請求書や報告書でセル結合が多用されるのか
セル結合とは、Excel上で複数のセルを1つの大きなセルのように見せる機能です。表の見出し行を1行で通したい、タイトル欄を複数列にわたって中央に配置したい、といった見た目の整形によく使われます。
📚 用語解説
セル結合:隣接する複数のセルを1つのセルとして扱う機能。見た目は1つの大きなセルになりますが、内部的には「結合範囲の左上(先頭)セル」だけが値を保持し、それ以外のセルは空扱いになります。Excelのリボンでは「ホーム」タブの「セルを結合して中央に配置」ボタンから操作できます。
請求書・見積書・報告書といった社外向けの書類フォーマットでは、セル結合が特に多用されます。会社名や日付、合計金額の欄を見やすく整えるために、複数セルをまとめて1つの枠として扱うことで、レイアウトが整った印象を与えられるためです。
1-1. 見た目の整形だけでなく、業務フローにも影響する
セル結合は単なる見た目の話にとどまりません。毎月同じフォーマットの請求書を量産する、複数の担当者が同じテンプレートに入力するといった業務フローでは、セル結合の状態がそのままVBAマクロの動作に影響します。
例えば、「B2:D3を結合してタイトルを入れる」というテンプレートに対して、VBAで自動的にタイトル文字列を差し込みたい場合、結合されたセルのどのセルに値を書き込むべきかを正しく理解していないと、意図しない場所にエラーが出たり、値が反映されなかったりします。
セル結合は見た目を整える一方で、後々のデータ処理(並び替え・関数参照・VBA操作)を複雑にする副作用があります。「本当に結合が必要か」「インデントや中央揃えだけで代用できないか」を一度検討してから使うと、後工程でのトラブルを未然に防げます。
1-2. VBAでセル結合を操作する3つの入り口
VBAでセルの結合状態を操作する方法は、大きく3つに分類できます。それぞれ役割が異なるため、まずは全体像を掴んでおきましょう。
02 THREE METHODS Merge・UnMerge・MergeCellsの使い方 3つの方法の役割の違いとサンプルコード
ここから、Merge・UnMerge・MergeCellsそれぞれの具体的なコードと使い分けを見ていきます。
2-1. Mergeメソッドでセルを結合する
指定した範囲のセルを結合するには、Rangeオブジェクトの Merge メソッドを使います。最も基本的な書き方は以下の通りです。
この1行だけで、B2からD3までの6つのセルが1つの結合セルになります。結合後は左上のB2セルだけが値を保持し、C2・D2・B3・C3・D3は空セルとして扱われます。
📚 用語解説
Rangeオブジェクト:VBAでセル範囲を表すためのオブジェクト。Range("A1")のように1つのセルを指定することも、Range("A1:C3")のように複数セルの範囲を指定することもできます。Excelを操作するVBAコードのほぼすべてが、このRangeオブジェクトを起点に組み立てられます。
2-2. 1行ずつまとめて結合する場合の書き方
複数の行に対して、同じ列範囲を1行ずつ結合していきたいケースもよくあります。この場合はループ処理と組み合わせます。
このように、行番号を変数にして文字列連結することで、10行分をまとめて結合できます。一覧表の各行に見出しセルを作るようなテンプレートでよく使われる書き方です。
2-3. UnMergeメソッドで結合を解除する
結合を解除するには、対象範囲に対してUnMerge メソッドを呼び出します。
UnMergeを実行すると、結合が解除されて元の6つの独立したセルに戻ります。ただし値は先頭セル(B2)にしか残らないため、解除後にC2やD2に値を再配置したい場合は、別途コードで値をコピーする処理が必要です。
結合を解除しても、値は先頭セルにしか残りません。「結合前は各セルに値が入っていた」と誤解して処理を書くと、想定と異なる結果になります。解除後に値を分配し直したい場合は、事前にどのセルへどの値を入れるかのロジックを明確に設計しておく必要があります。
2-4. MergeCellsプロパティで結合・解除を切り替える
MergeCellsプロパティは、True/Falseを代入することで結合・解除を1つの構文で切り替えられる点が特徴です。
Merge・UnMergeとほぼ同じ結果になりますが、MergeCellsは条件分岐と組み合わせやすいという利点があります。例えば「すでに結合されていなければ結合する」といった処理を、後述する判定方法と組み合わせて簡潔に書けます。
| 方法 | 種別 | 主な用途 | 書きやすさ |
|---|---|---|---|
| Merge | メソッド | 単純に結合したいだけの場合 | ◎ 最もシンプル |
| UnMerge | メソッド | 単純に解除したいだけの場合 | ◎ 最もシンプル |
| MergeCells | プロパティ | 結合状態の判定・条件分岐と組み合わせる場合 | ○ 判定処理と併用しやすい |
「とにかく結合したい/解除したい」だけならMerge・UnMergeで十分です。「結合されているかどうかを見て処理を分けたい」という条件分岐が必要な場合は、MergeCellsプロパティを使うのが素直な書き方になります。
03 VALUE & DETECTION 結合セルの値取得・判定方法(MergeArea) 結合セルにアクセスする際に必ず知っておきたい仕様
セル結合を扱うVBAコードで最もエラーが起きやすいのが、結合セルの値を取得しようとする場面です。この章では、正しい値の取得方法と、結合の有無を判定する方法を整理します。
3-1. 結合セルの値を取得する:MergeAreaプロパティ
結合されたセル範囲のうち、どのセルを参照しても値を正しく取得したい場合は、MergeAreaプロパティを使います。
📚 用語解説
MergeArea:指定したセルが結合セルの一部である場合、その結合範囲全体をRangeオブジェクトとして返すプロパティ。結合範囲の中のどのセルを起点にしても、MergeArea(1,1)で必ず先頭(左上)セルの値にアクセスできます。結合セルの値取得で最も安全な書き方です。
もし単純に Range("C4").Value のように、結合範囲の先頭以外のセルを直接参照すると、空文字が返ってきてしまいます。これは「結合セルの値は先頭セルにしか存在しない」という仕様通りの動きですが、意図せずこの挙動にはまってバグを生む例は非常に多いです。
「C4に値が入っているはずなのに空になる」という不具合の多くは、C4がB4との結合セルの一部で、値がB4側にしかないケースです。結合セルを扱うコードでは、値を取得する前に必ずMergeAreaで先頭セルを特定する癖をつけましょう。
3-2. セルが結合されているかを判定する
処理対象のセルが結合されているかどうかを事前に判定したい場合は、MergeCellsプロパティをTrue/Falseの判定に使います。
この判定処理を使うことで、「結合セルなら特別な処理を行い、通常セルならそのまま処理する」という条件分岐が書けます。特に複数人が入力するテンプレートで、セルの状態が統一されていない場合には、この判定処理を入れておくとエラーの発生を大きく減らせます。
3-3. MergeAreaで結合範囲の大きさを取得する
MergeAreaは値取得だけでなく、結合範囲がどこからどこまでか(行数・列数)を調べる用途にも使えます。
Range.Valueを直接使わずMergeArea(1,1).Valueを使うMergeCellsプロパティを使うMergeArea.Rows.Countや.Addressを使う04 COMMON PITFALLS セル結合が引き起こす代表的なトラブルと対策 並び替え・フィルタ・関数参照でハマりやすいポイント
セル結合は見た目を整えるうえで便利ですが、Excelをデータベース的に使う場面(並び替え・フィルタ・関数での参照)とは相性が悪いという側面があります。この章では、実務で頻発するトラブルを整理します。
4-1. 並び替え(ソート)でエラーが出る
結合セルが含まれる表を並び替えようとすると、「この操作を行うには、結合されているセルを同じサイズにする必要があります」というエラーメッセージが表示されることがあります。これは、並び替え対象の範囲内で結合サイズが不揃いだと発生します。
データを並び替える予定がある表には、そもそもセル結合を使わないのが最も確実な対策です。見た目を整えたい場合は、セル結合の代わりに「選択範囲内で中央」という配置設定を使うと、見た目は結合と似た印象を保ちながら、並び替えへの悪影響を避けられます。
4-2. フィルタ機能が正しく動作しない
オートフィルタも同様に、結合セルが混在する表では意図しない行がまとめて表示・非表示になることがあります。結合された範囲の先頭行の条件が、結合範囲全体の表示・非表示を左右してしまうためです。
一覧表としてフィルタ・並び替えを頻繁に使うシートでは、見出し行以外にセル結合を持ち込まないことを強く推奨します。「見出しだけ結合してデータ行は結合しない」という運用ルールを徹底すると、事故を大きく減らせます。
4-3. VLOOKUP・XLOOKUPなどの関数参照で値が取れない
VLOOKUP関数やXLOOKUP関数で結合セルを参照すると、結合範囲の先頭以外のセルを参照した場合に空欄やエラーが返ることがあります。VBAのMergeAreaと同じ仕様上の理由で、関数からの参照でも同様の現象が起きます。
この問題を回避する代表的な方法は2つあります。1つは結合を使わず、必要なら書式設定(フォントサイズ・中央揃え)だけで見た目を整える方法。もう1つはVBAで事前に結合セルの値を全セルにコピーしてから関数を実行する方法です。
📚 用語解説
VLOOKUP / XLOOKUP:Excelの検索関数。指定した値を表の中から探し、対応する別の列の値を取得する。VLOOKUPは古くから使われている関数、XLOOKUPはより柔軟な検索が可能な後継関数です。どちらも結合セルを検索範囲に含めると、意図しない挙動になりやすい点は共通しています。
結合セルを含む
表かどうか確認
並び替え/フィルタ/
関数参照の予定を確認
予定があれば
結合を使わない設計に変更
見出し行のみ結合
データ行は結合しない
この4ステップを設計段階で確認しておくだけで、「あとから結合セルが原因で表が崩れる」というトラブルの大半は未然に防げます。
05 GENAI CASE STUDY 【独自データ】GENAI社内のExcel業務AI活用実績 Claude Codeを契約している会社は、Excel業務にどう向き合っているか
ここでは、弊社(株式会社GENAI)が実際にAI(Claude Code)を業務に組み込んでいる状況を、数値ベースで公開します。VBAでセル結合のようなコードを書く場面が、社内でどう変わってきたかの参考情報としてご覧ください。
5-1. 弊社の契約プランと導入範囲
| 項目 | 内容 |
|---|---|
| 契約プラン | Claude Max 20x(月$200 / 約30,000円) |
| 利用開始 | 2025年後半〜 |
| 利用部署 | 経営・営業・広告・開発・経理・秘書業務・個人業務まで全社 |
| Excel関連業務 | 請求書チェック・経費仕訳・報告書フォーマット整形など |
弊社では、VBAのコードを一つひとつ手で書く場面が、AI導入以降大きく減りました。特にセル結合を含むテンプレート整形や、結合セルが原因で起きる表崩れの修正のような、地味だが時間を取られる作業は、AIに指示するだけで完了するケースが増えています。
5-2. 業務領域別の削減時間(肌感ベース・2026年最新)
| 業務領域 | 主な用途 | 概算削減時間 |
|---|---|---|
| 営業 | 提案書・見積・顧客別資料の自動生成 | 週20h → 週2h |
| 広告運用 | 週次レポート・CPA分析・配信内容調整 | 週10h → 週1h |
| ブログ記事 | SEO記事執筆・リライト・内部リンク最適化 | 1本8h → 1本1h |
| 経理 | 請求書チェック・経費仕訳・Freee連携 | 月40h → 月5h |
| 秘書業務 | 日報生成・議事録・スケジュール調整 | 日2h → 日15分 |
| 開発 | WordPress/LP/Pythonスクリプト書き捨て | 都度数時間削減 |
| 個人業務 | メール下書き・雑務タスク整理 | 日1h → 日10分 |
上記は弊社の肌感ベースの数値であり、業種・業態・担当者のスキルによって削減時間は変動します。あくまで「AIを全社で回すとどの程度まで使い倒せるか」の参考情報としてご覧ください。
こうした削減時間を単純合算すると、月間160時間(1名分のフルタイム業務量)に相当する業務がAIで吸収されている計算になります。もちろん完全自動化ではなく人間のレビューは必要ですが、体感的には約0.8人分の業務量を肩代わりしてくれている実感があります。
06 AI AUTOMATION 【独自】VBAを書かずにセル結合作業を自動化する方法 非エンジニアの経営者・管理職でも使える選択肢
ここまでVBAでのセル結合操作を解説してきましたが、正直なところ「VBAを覚えるコストの方が高い」と感じる非エンジニアの方も多いはずです。この章では、VBAを1行も書かずにセル結合まわりの作業をAIに任せる方法をご紹介します。
6-1. Claude Codeとは何か(VBAとの違い)
Claude Codeは、Anthropic社が提供するAIエージェントです。VBAのように「コードを自分で書いて実行する」のではなく、「やりたいことを日本語で伝えると、AIが代わりにExcelファイルを操作してくれる」という発想のツールです。
📚 用語解説
Claude Code:AIチャットのように日本語で指示を出すだけで、ファイルの読み書きや処理の自動化を代行してくれるAIエージェント。VBAのような専門知識がなくても、「この表のB列とC列を結合して」と伝えるだけで意図した処理を実行できます。
6-2. セル結合作業をAIに依頼する具体例
例えば、以下のような依頼を日本語でそのまま伝えるだけで、AIがファイルを処理してくれます。
これらの指示は、VBAの知識がなくてもそのまま伝えられる内容です。AIが裏側で必要なコードを組み立てて実行するため、Merge・UnMerge・MergeCellsの違いを覚える必要すらないというのが最大の利点です。
「このExcelの表で結合セルが原因でフィルタがうまく動かないので直して」というような、すでに困っている具体的な状況をそのまま伝えるのが最も効果的です。抽象的な指示より、目の前の実物のファイルとエラーの症状を伝える方が、AIも的確に対応してくれます。
6-3. VBAを覚えるべき人・AIに任せるべき人の分かれ道
とはいえ、「VBAを覚える意味が全くない」というわけではありません。以下のような判断基準で、自分がどちら側かを考えてみてください。
| タイプ | おすすめの向き合い方 | 理由 |
|---|---|---|
| エンジニア・情報システム部門 | VBAの仕組みを理解した上でAIも併用 | 仕組みを理解していると、AIの出力もレビューしやすい |
| 非エンジニアの経営者・管理職 | AIに指示して結果だけ確認 | コードを書く時間そのものが経営上のコストになる |
| 月に数回しかマクロを使わない担当者 | AIに都度依頼する | 使う頻度が低い技術を覚えるコストが割に合わない |
| 毎日Excel処理を自動化したい部署 | AIでテンプレート化して繰り返し使う | 一度AIに作らせた処理を社内で使い回せる |
日本語で
やりたいことを伝える
結合/解除/判定の
コードを裏側で実行
意図通りか
目視でチェック
同じ処理を
繰り返し依頼できる形に
07 QUICK GUIDE 状況別おすすめの対処法早見表 「結局どうすればいいか」を1枚で決める
ここまでの情報を1枚にまとめた早見表です。自分の状況に一番近い行を探してください。
| 状況 | おすすめの対処法 | 補足 |
|---|---|---|
| 単発でセルを結合・解除したい | Excelのリボン操作で十分 | VBA化する必要はない |
| 同じ処理を毎月繰り返す | VBAでマクロ化 or AIにテンプレ化を依頼 | 繰り返し作業ほど自動化の効果が大きい |
| 結合セルの値がうまく取れない | MergeAreaプロパティを使う | Range.Valueの直接参照はNG |
| 並び替え・フィルタでエラーが出る | 結合セルを使わない設計に変更 | 見出し行のみ結合に限定する |
| VBAを書く時間そのものを削減したい | Claude Codeに日本語で依頼 | コードを覚えずに結果だけ確認する運用 |
08 CONCLUSION まとめ ── セル結合の手間はVBAでもAIでも消せる 仕様を理解した上で、書く作業自体は手放すという選択肢
この記事では、VBAでセルを結合・解除する3つの方法(Merge・UnMerge・MergeCells)、結合セルの値取得・判定方法、業務で起きがちなトラブルと対策、そして弊社GENAIの実運用データと非エンジニア向けのAI自動化までを整理しました。最後にポイントを振り返ります。
セル結合そのものは、Excel業務において避けられない機能です。大切なのは、その操作を「誰が」「どう」自動化するかという選択です。エンジニアであればVBAの仕様を正しく理解した上でコードを書くべきですし、非エンジニアの経営者・管理職であれば、コードを書く工程自体をAIに渡してしまう方が、時間対効果の観点で圧倒的に合理的です。
弊社では、Claude Codeを「チャットツール」ではなく「もう一人の社員」として位置づけることで、Excel業務を含む幅広い作業を効率化しています。VBAを書く時間そのものを見直したい方は、ぜひ以下のAI鬼管理までお気軽にご相談ください。
VBAのコードを書く工数、AI鬼管理が一緒に見直します
セル結合のような細かい仕様を毎回調べながらVBAを書くのは、非エンジニアの方には大きな負担です。
弊社の実運用ノウハウをベースに、Excel業務の自動化を個別にご相談いただけます。
ここから先の進め方は、大きく2つあります。
自社で回せるようになりたい方は、AI鬼管理でClaude Code/Codexの使い方から業務設計・社内定着まで伴走を受けながら、社内に仕組みを作る道があります。
覚えるより任せたい方は、AI社員AIKATAでこの記事のような定型業務を丸ごと預ける道があります。料金は月30万円の月額定額、追加費用は0円です。
どちらが合うかは、業務量と社内体制次第です。無料相談・無料適合診断で、貴社の場合はどちらが向くかからご相談いただけます。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
よくある質問
Q. VBAでセルを結合するには、Merge・UnMerge・MergeCellsのどれを使えばいいですか?
A. 単純に結合したいだけならMergeメソッド、単純に解除したいだけならUnMergeメソッドを使うのが最もシンプルです。「結合されているかどうかを判定してから処理を分けたい」という条件分岐が必要な場合は、MergeCellsプロパティを使います。動作か状態かで分けて覚えると混同しにくくなります。
Q. 結合セルの値をVBAで取得しようとすると、なぜ空になってしまうのですか?
A. Excelの仕様上、結合セルは「結合範囲の先頭(左上)セル」だけが値を保持し、それ以外のセルは空扱いになります。Range("C4").Valueのように先頭以外のセルを直接参照すると空文字が返ってきます。正しく値を取得するには、MergeArea(1,1).Valueのように結合範囲の先頭セルを明示的に参照する必要があります。
Q. セルが結合されているかどうかを事前に判定する方法はありますか?
A. あります。対象のRangeオブジェクトのMergeCellsプロパティを参照すると、結合されていればTrue、されていなければFalseが返ります。If Range("B2").MergeCells Then ... という形で条件分岐に組み込めば、結合セルかどうかで処理を分けるコードが書けます。
Q. セル結合を使った表で、並び替えやフィルタがうまく動かないのはなぜですか?
A. 並び替えやフィルタは、対象範囲内のセルサイズが統一されていることを前提に動作します。結合セルが混在していると、結合範囲の大きさが不揃いになるため、「結合されているセルを同じサイズにする必要があります」というエラーや、意図しない行の表示・非表示が発生します。データとして扱う表では、見出し行以外にセル結合を使わないのが確実な対策です。
Q. VLOOKUPやXLOOKUPで結合セルを検索範囲に含めると何が起きますか?
A. 結合セルの先頭以外の位置にある値を検索・参照しようとすると、VBAのMergeAreaと同じ仕様上の理由で、空欄が返ったりエラーになったりします。回避策としては、結合を使わずに書式設定だけで見た目を整える方法か、VBAで結合セルの値を全セルに事前コピーしてから関数を実行する方法があります。
Q. VBAを書かなくてもセル結合の作業を自動化できますか?
A. できます。Claude CodeのようなAIエージェントを使えば、「このExcelファイルのA1:D1を結合してタイトルを中央に入れて」といった日本語の指示だけで、AIが裏側で必要な処理を代行してくれます。Merge・UnMerge・MergeCellsの違いを覚える必要もなく、非エンジニアの方でも同様の作業を実現できます。
Q. VBAの知識自体はもう不要になりますか?
A. 完全に不要にはなりません。AIが出力した処理結果が意図通りかどうかを判断する土台として、VBAの基本的な仕組み(結合セルは先頭セルしか値を持たない、など)を理解しておくことには価値があります。ただし「毎回自分でコードを一から書く」という工程については、非エンジニアの方であればAIに渡してしまう方が時間対効果は高くなります。
Q. 弊社のようにExcel業務でAIを使う場合、どのくらいの費用がかかりますか?
A. 弊社(株式会社GENAI)ではClaude Max 20xプラン(月額$200・約30,000円)を全社契約し、Excel業務を含む幅広い作業に活用しています。個人でVBAの代わりにAIを使う場合は、月額3,000円程度のProプランからでもClaude Codeが利用できるため、まずは小さく試してみることをおすすめします。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
AI鬼管理/AI社員AIKATAへのお問い合わせ
この記事を読んで気になった方へ。
専門スタッフが、御社に最適な
業務自動化・業務代行プランを無料でご提案します。




