shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel VBA】選択範囲のセル結合を解除して各セルに同じ値を入力

Excelで、集計・分析するときにセルを結合した表があると、セル結合を解除し、結合されていた値を各セルに入力が必要となる場面があります。

表を見やすくする目的でセルを結合したが、集計・分析のためにセル結合を解除したい時のVBAサンプルです。

内容:

アウトプットイメージ

選択範囲のセル結合を解除して各セルに同じ値を入力します。

選択範囲のセル結合を解除して各セルに同じ値を入力

VBAの実行結果のイメージ

事例の前提

  • VBAを実行する前に、セル結合を解除したいセル範囲を選択しておきます(この事例ではB2:D9)。

  • 結合を解除するだけなので、罫線の設定はそのままです。

VBAサンプル

Sub 選択範囲のセル結合を解除して同じ値を入力()
    Dim 対象セル As Range
    Dim 結合範囲 As Range
    Dim 選択範囲 As Range

    Set 選択範囲 = Selection
  
    For Each 対象セル In 選択範囲
        If 対象セル.MergeCells Then
            Set 結合範囲 = 対象セル.MergeArea
            結合範囲.UnMerge
            結合範囲.Value = 結合範囲.Cells(1, 1).Value
        End If
    Next
End Sub

再度、同じ値のセルを結合したい場合

「条件付き書式」を活用することで、セル結合をせず、同じ値を非表示にすることができます。

shikumika.org

VBAで実施する場合は、以下です。

shikumika.org

以上、Excel VBAで選択範囲のセル結合を解除して各セルに同じ値を入力する方法でした。