この記事では Excel の各シートの結合されたセルを一括で解除する VBA マクロを紹介します。
手作業で解除するのが面倒なときに便利です。
仕様
以下のようなブックを想定しています:
- 複数シートがある
- 各シートに結合セルがある
実行するとすべてのシートの結合セルが解除されます。
Before
複数シートに結合セルがあり、目視で解除するのは面倒…

After
VBA を実行すると全シートの結合セルが一括で解除される
※以下の画像だと、Sheet1、Sheet2、Sheet3全部解除

VBAサンプルコード
UnMerge関数を使用することによって、セル結合が解除できます。
Worksheet(XXXXXX).UsedRange.UnMerge
シートの数だけループし、UnMerge関数で各シートのセル結合を解除します。
Option Explicit
Sub unMergeAllSheets()
Dim SheetNo As Long
For SheetNo = 1 To Worksheets.Count
' 全シートの結合セルを解除
Worksheets(SheetNo).UsedRange.UnMerge
Next SheetNo
End Sub
これをThisWorkbookのところで実装しています。

※UnMergeをMergeに書き換えないようにご注意を。
Excelでの実行手順
実行手順
- Alt + F11 で VBA エディタを開く
- ThisWorkbook に上記コードを貼り付ける
- Alt + F8 で「unMergeAllSheets」を選択
- 実行する
【Alt + F8で開かれるマクロ一覧画面】

これでさきほどの「unMergeAllSheets()」関数が実行されます。
実行結果
Sheet1~Sheet3までのすべてのシートのセル結合が解除されました。
シート「Sheet1」

シート「Sheet2」

シート「Sheet3」

参考情報
環境
下記の環境で作成・実行しております。
| No. | 環境 | バージョン |
|---|---|---|
| 1 | OS | Windows11 |
| 2 | Excel | Excel2016 |
以上です。