Для простых графиков просто используйте PlotOrder
: если вы не используете комбинированную диаграмму (т.е. не смешиваете линейные и гистограммы и не используете вторичную ось), то вы можете просто использовать следующий код:
IIF(TypeName(Selection)="Series", Selection.PlotOrder, -1)
Это вернет -1
, если у вас не выбрано Series
.
Однако, это на самом деле заказ в рамках ChartGroup
- условия выше, для случаев, когда на Chart
.
.
есть только 1 ChartGroup
. В противном случае попробуйте использовать Name
и al oop:
Function ActiveSeriesNumber(ThisSeries AS Series) AS Long
Dim ThisChart AS Chart, TestNumber AS Long
ActiveSeriesNumber = -1
On Error GoTo FunctionError
Set ThisChart = ThisSeries.Parent.Parent 'Object Model Is Chart.ChartGroup.Series
For TestNumber = 1 to ThisChart.SeriesCollection.Count
If ThisChart.SeriesCollection(TestNumber).Name = ThisSeries.Name THen
ActiveSeriesNumber = TestNumber
Exit Function
End If
Next TestNumber
FunctionError:
On Error GoTo -1
End Function
Используйте это, вызывая ActiveSeriesNumber(Selection)