結合を解除
見出しの整形や過去の手作業で増えた「結合セル」を、事故なく一括解除するための最短コードと安全テンプレートをまとめます。基本は Range.UnMerge(範囲の結合解除)、状態確認は MergeCells、結合の塊は MergeArea で扱います。
基本:結合解除の最短コード
Sub UnmergeBasic()
'単一範囲を解除
Range("A1:B1").UnMerge
End Sub
VB- ポイント: 最短: 指定範囲の結合を解除するだけなら UnMerge 1行で完了。結合セルの判定は MergeCells、結合ブロック全体は MergeArea で取得できます。
シート/ブック全体を一括で解除
Sub UnmergeWholeSheet()
'シート内の使用中セルだけ一括解除(安全)
ActiveSheet.UsedRange.UnMerge
End Sub
Sub UnmergeAllSheetsInWorkbook()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.UsedRange.UnMerge
Next
End Sub
VB- ポイント: UsedRangeで限定: データがある範囲に絞って解除でき、不要な上書きを避けられます。シート全体/全シートの一括解除も同じ発想です。
列・行・選択範囲だけ解除
Sub UnmergeColumn()
'A列の結合をすべて解除
Columns("A").UnMerge
End Sub
Sub UnmergeRow()
'3行目の結合をすべて解除
Rows(3).UnMerge
End Sub
Sub UnmergeSelection()
If TypeName(Selection) = "Range" Then
Selection.UnMerge
End If
End Sub
VB- ポイント: 部分適用: 列や行、選択されたブロックだけに限定して解除できます。Range.UnMerge は複数セル・複数範囲にも使えます。
値の保全:解除前に結合範囲へ値を配ってから解除
Sub UnmergePreserveValues()
Dim cell As Range, area As Range
'対象表(見出し込み)
For Each cell In Range("A1").CurrentRegion
If cell.MergeCells Then
Set area = cell.MergeArea
'左上セルの値を結合範囲の全セルへコピーしてから解除
area.Value = area.Cells(1, 1).Value
area.UnMerge
End If
Next
End Sub
VB- ポイント: 左上に集約される仕様: 結合は左上セルの値だけ残し、他セルは失われます。解除前に結合範囲へ値を配っておくと、値の“空白化”を防げます。結合判定は MergeCells、塊取得は MergeArea が便利です。
例題で練習
例題1:使用セルだけ一括解除(提出前の整形)
Sub Example_UnmergeUsedRange()
With ActiveSheet.UsedRange
.UnMerge
End With
End Sub
VB例題2:A列の結合解除+中央揃えで見た目保持
Sub Example_UnmergeColumnWithFormat()
Columns("A").UnMerge
Columns("A").HorizontalAlignment = xlCenter
End Sub
VB例題3:結合セルを検出→薄黄色でハイライトしてから解除
Sub Example_HighlightThenUnmerge()
Dim cell As Range
For Each cell In Range("A1").CurrentRegion
If cell.MergeCells Then
cell.MergeArea.Interior.Color = RGB(255, 242, 204)
cell.MergeArea.UnMerge
End If
Next
End Sub
VB実務の落とし穴と対策
- 値の消失:
- 対策: 解除前に MergeArea.Value = 左上値 で全セルに値を配ると、解除後も欠損が出ません。
- 解除しすぎ/誤範囲:
- 対策: UsedRange や列・行・選択を使って対象を限定する。全シート一括時も UsedRange.UnMerge を基本に。
- 結合検知の見落とし:
- 対策: MergeCells で判定、MergeArea でブロック単位の処理を徹底。
- 後工程との相性:
- 対策: 並べ替え・フィルタ・集計に備えて、データ部は原則“非結合”に統一。見出しは結合なしでも中央揃えで代替可能。
