Microsoft Excelで半自動で結合セルを分解するマクロ

みなさん、こんにちは、
みむすたーです。

本日は、Excel VBAのお話しです。
私は以前、仕事でExcelを使用していたときに、
以下のように結合セルを分解したいなと思ったことがありました。

結合セルを分解して、その上で分解したセルを全てその値で埋めたいのです。

もくじ

マクロの動作

マクロの動きはこんな感じ

VBAコード

VBAマクロは以下の通りです。

Sub 結合セル分解マクロ()
    Dim fr, dr As Integer

    ' 結合セルの縦の長さを測る
    fr = Selection(1).Row
    Selection.Offset(1, 0).Select
    dr = Selection(1).Row
    
    If dr - fr = 1 Then
        ' 選択セルが結合セルではないため、処理終了
        Exit Sub
    End If
    
    ' 一旦元のセルの位置に戻る
    Selection.Offset(-1, 0).Select
    
    ' 結合セルを分解する
    Selection.UnMerge
    
    ' 結合セルの部分を全て同じ値で埋める
    Selection = Selection(1)

    ' 一番上のセルを選択して、結合セルの次のセルの位置に移動する
    Selection(1).Select
    Selection.Offset(dr - fr, 0).Select
End Sub

注意事項

当たり前ですが、マクロを使用した場合、
Undo機能は使用できませんので、ご注意を!

コメント