Vba: 同じ値を持つセルを結合する方法


VBA で次の構文を使用すると、特定の範囲内の同じ値を持つセルを結合できます。

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

この特定のマクロは、 A1:C13の範囲内の同じ値を持つセルを結合します。

次の例は、この構文を実際に使用する方法を示しています。

例: VBA で同じ値を持つセルを結合する

さまざまなバスケットボール選手が獲得したポイントに関する情報を含む次のデータセットが Excel にあるとします。

連続する行で同じ値を持つセルを結合したいとします。

これを行うには、次のマクロを作成できます。

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

このマクロを実行すると、次の出力が表示されます。

VBAは同じ値を持つセルを結合します

同じ会議名とチーム名を含む各セルが結合されていることに注意してください。

cell.VerticalAlignment = xlCenterステートメントを使用して、結合されたセル内でテキストが垂直方向の中央に配置されるように指定していることに注意してください。

追加リソース

次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。

VBA: 使用されている列の数を数える方法
VBA: 行の高さを変更する方法
VBA:列幅を変更する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です