VBAやExcelをよく触る方は、結合セルに嫌なイメージがあります。
先方から頂いたマスタデータを開けた時に、結合セルがたくさんだと「おぅ・・・・」となりますよね。
先方は気を利かせて結合セルで作っている為、やめろとも言えません。
ではマクロで解決して、自分が使いやすい形式に変えてしまえばいいです。
下記のようなイメージのマクロを作成します。

結合セルを解除後、同じ値を埋めるサンプルコード
結合セルは見た目はいいです。但し、データベース形式としては最低です。
結合セル情報からデータベース形式に変換をします。
'■結合したセルデータをデーターベース形式に変更する
Public Sub test()
Dim rng As Range
Dim val As String
'■アクティブシートの全ての使用しているセルを全て処理
For Each rng In ActiveSheet.UsedRange
'■結合セル(MergeCells = True)なら、結合解除し、値を入れる
If rng.MergeCells = True Then
val = rng.Value
With rng.MergeArea
.UnMerge
.Value = val
End With
End If
Next rng
End Sub
注意点
- 縦の結合、横の結合にも対応しています。
- ActiveSheet.UsedRange としている為、指定シートで行う場合は Set wsをしましょう。
ワークシート名を変数にSetし、短い名前で利用する【マクロ初級者必読】



コメント