Попробуйте, важно выполнить цикл в обратном направлении, поскольку позиция каждой записи обновляется по мере удаления от 1 до конца, то есть 3 становится 2, если 2 удаляется
Option Explicit
Sub legendcleaner()
Dim i As Long
With ActiveChart.Legend
If .LegendEntries.Count > 1 Then
For i = .LegendEntries.Count To 2 Step -1
.LegendEntries(i).Delete
Next i
End If
End With
End Sub