みなさん、こんにちは、
みむすたーです。
本日は、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機能は使用できませんので、ご注意を!
コメント