VBATips

結合セルをデータベース形式のセルに切り替える【UnMerge応用】【ExcelVBA】

VBAやExcelをよく触る方は、結合セルに嫌なイメージがあります。
先方から頂いたマスタデータを開けた時に、結合セルがたくさんだと「おぅ・・・・」となりますよね。

先方は気を利かせて結合セルで作っている為、やめろとも言えません。

ではマクロで解決して、自分が使いやすい形式に変えてしまえばいいです。
下記のようなイメージのマクロを作成します。

merge→unmerge

結合セルを解除後、同じ値を埋めるサンプルコード

結合セルは見た目はいいです。但し、データベース形式としては最低です。
結合セル情報からデータベース形式に変換をします。


'■結合したセルデータをデータベース形式に変更する
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


注意点

関連記事

セルが結合しているかどうか判断する【MergeCellsプロパティ】【ExcelVBA】
結合セルの情報を取得する【MergeAreaプロパティ】【ExcelVBA】
セルを結合/結合解除する【Mergeメソッド/UnMergeメソッド】【ExcelVBA】
結合セルの初期化(ClearContents)のエラーを回避する
「Ctrl+Shift+Q」で「セル結合・セル結合解除」をパーツ化する。【エクセルマクロ】

コメント

タイトルとURLをコピーしました