« セルにハイパーリンクを設定する | トップページ | [読み取り専用を推奨する]設定 »

2020年5月17日 (日)

セルの結合を解除して結合されていた全セルに同じ値を入力する

セルの結合をしていると
並び替えができません。

並び替えをするために
セルの結合を解除すると
左上のセルのみに値が設定され
その他のセルは空白になってしまいます。

セルの内容によって
並び替えをしたい場合は
結合解除で空白になると適切に並び替えができません。

VBAで
結合を解除したときに
結合されていた全セルに結合時の値を設定できるようにします。

次のコードは選択範囲内の結合を解除して
結合していた全セルに同じ値を入力します。

セルの結合を解除して
結合されていた全セルに同じ値を入力するコード:

Sub macro20200517a()
'セルの結合を解除したときに
'すべてのセルに同じ値を入れる

    Dim Str As String
    Dim c As Range
    Dim rng As Range
   
    For Each c In Selection
        If c.MergeCells = True Then
            Str = c.FormulaR1C1
            Set rng = c.MergeArea
            c.UnMerge
            rng.Cells = Str
        End If
    Next c

End Sub

次のコードは
上記のマクロで結合を解除したセルを再結合します。

隣り合う同じ値のセルを結合するコード:

Sub macro20200517b()
'隣り合う同じ値のセルを結合する

    Dim Str As String
    Dim c As Range
    Dim rng As Range
    Dim i As Integer, j As Integer
   
    For Each c In Selection
        i = 0
        j = 0
        If c <> "" Then
            Do While c = c.Offset(i + 1, 0)
                i = i + 1
            Loop
            Do While c = c.Offset(0, j + 1)
                j = j + 1
            Loop
            Application.DisplayAlerts = False
            Range(c, c.Offset(i, j)).Merge
            Application.DisplayAlerts = True
        End If
    Next c

End Sub

使用Ver:Win10, Excel For Office365

|

« セルにハイパーリンクを設定する | トップページ | [読み取り専用を推奨する]設定 »

コメント

この記事へのコメントは終了しました。