通过串联和格式系列填充颜色进行循环



我正在尝试使用PowerPoint(PPT)中的代码工作,以循环浏览PPT中的所有列图,并格式化系列集合中的每个列栏与特定颜色。当我为系列填充颜色编写的线路数为=时,它可以很好地工作。例如。当我有第15行" .SeriesCollection(15).format.fill.forecolor.rgb = rgb(250,10,10)",但我的图表只有10列,它会有错误。当有15列时,它可以正常工作。

,但很有可能列的数量是PPT上随机的,我想询问是否有任何方法,例如i = 1 to SeriesCollection.count.count如果i = 1,请选择" .SeriesCollection(1)颜色,i = 2,选择" .SeriesCollection(1)颜色等...

我的代码如下,非常感谢我是否可以指出我应该如何修改代码并使其起作用

谢谢

For Each Slide In ActivePresentation.Slides
For Each Shape In Slide.Shapes
If Shape.HasChart = True Then
If Shape.Chart.ChartType = xlColumnStacked Then
With sh.Chart
    For Each ser In .SeriesCollection
        .SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(10, 10, 10)
        .SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(30, 10, 10)
        .SeriesCollection(3).Format.Fill.ForeColor.RGB = RGB(50, 10, 10)
        .SeriesCollection(4).Format.Fill.ForeColor.RGB = RGB(70, 10, 10)
        .SeriesCollection(5).Format.Fill.ForeColor.RGB = RGB(90, 10, 10)
        .SeriesCollection(6).Format.Fill.ForeColor.RGB = RGB(120, 10, 10)
        .SeriesCollection(7).Format.Fill.ForeColor.RGB = RGB(140, 10, 10)
        .SeriesCollection(8).Format.Fill.ForeColor.RGB = RGB(160, 10, 10)
        .SeriesCollection(9).Format.Fill.ForeColor.RGB = RGB(10, 180, 10)
        .SeriesCollection(10).Format.Fill.ForeColor.RGB = RGB(10, 200, 10)
        .SeriesCollection(11).Format.Fill.ForeColor.RGB = RGB(10, 230, 10)
        .SeriesCollection(12).Format.Fill.ForeColor.RGB = RGB(10, 10, 50)
        .SeriesCollection(13).Format.Fill.ForeColor.RGB = RGB(10, 10, 150)
        .SeriesCollection(14).Format.Fill.ForeColor.RGB = RGB(10, 10, 200)
        .SeriesCollection(15).Format.Fill.ForeColor.RGB = RGB(250, 10, 10)
    Next
End With
End If
End If
Next
Next

您的意思是以下代码:

Dim SerCount As Long
SerCount = sh.Chart.SeriesCollection.Count
Select Case SerCount
    Case 1
    Case 2
    ' etc...
End Select

最新更新