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
このマクロを実行すると、次の出力が表示されます。
同じ会議名とチーム名を含む各セルが結合されていることに注意してください。
cell.VerticalAlignment = xlCenterステートメントを使用して、結合されたセル内でテキストが垂直方向の中央に配置されるように指定していることに注意してください。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。