Может кто-нибудь привести пример того, как изменить цвета круговой диаграммы? (Фактические части круговой диаграммы). Части упоминаются как очки? Я хотел бы выбрать цвет, используя RGB для каждой части. Спасибо!
2 ответа
Лично Блог Пельтье - мой любимый источник диаграмм Excel. Итак, взгляните на некоторые из образцов, которые он там обсуждал. Чтобы узнать больше здесь MVP
Я не думаю, что это замечательно копировать его коды здесь. Так что попробуйте учебники, указанные в материалах выше, и прокомментируйте, если у вас есть дополнительные вопросы. И вот некоторые факты, которые, как я думал, будут полезны в вашем путешествии по графику, чтобы быть гладкими и веселыми.
Чтобы быть более точным в форматировании RGB Colour
срезов pie chart
, вот строка кода:
Например
ActiveChart.SeriesCollection(1).Points(1).Interior.Color = RGB(0, 176, 80)
Вы можете найти номера цветов RGB
из приложения MS Paint
в Windows :) Еще одна статья, которая показывает некоторые цвета и соответствующие номера RGB
.
Вы можете подумать, что цветовой спектр бесконечен, он должен быть достаточно хорош для раскраски вашей дополнительной многослойной pie chart
. ОДНАКО не забывайте, что цветовая палитра Excel по умолчанию имеет 56 цветовых индексов. Как и Excel 2003. Так что иногда возникают проблемы при использовании файла Chart в другой версии Excel - когда вы обнаружите, что некоторые цвета отсутствуют и просто заменяются непривлекательными старыми цветами;)
Например, диаграмма, созданная в Excel 2007 и более поздних версиях, имеет богатое графическое представление цветов. Тем не менее, Excel 2003 не обеспечивает этого, но управляется (и, тем не менее, чрезвычайно эффективен). В Excel 2007 и более поздних версиях книги могут поддерживать миллионы цветов, но все еще существует базовая палитра книг, которая имеет 56 цветов.
Поэтому, когда вы сталкиваетесь с такими проблемами или читаете, чтобы справиться с ними, пожалуйста, проверьте эту статью:
Sub ColorPieCharts()
Dim iX As Integer
Dim iY As Integer
Dim bHasDataLabels As Boolean
Dim bShowSeriesName As Boolean
Dim bShowCategoryName As Boolean
Dim bShowValue As Boolean
Dim bShowPercentage As Boolean
Dim bLegendKey As Boolean
Dim bHasLeaderLines As Boolean
SetWorkbookColors
For iX = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(iX).Select
'Determine DataLabel status
On Error Resume Next
bHasDataLabels = ActiveChart.SeriesCollection(1).HasDataLabels
'bLegendKey = ActiveChart.SeriesCollection(1).LegendKey
bHasLeaderLines = ActiveChart.SeriesCollection(1).HasLeaderLines
bShowSeriesName = ActiveChart.SeriesCollection(1).DataLabels.ShowSeriesName
bShowCategoryName = ActiveChart.SeriesCollection(1).DataLabels.ShowCategoryName
bShowValue = ActiveChart.SeriesCollection(1).DataLabels.ShowValue
bShowPercentage = ActiveChart.SeriesCollection(1).DataLabels.ShowPercentage
On Error GoTo 0
ActiveChart.ApplyDataLabels AutoText:=True, _
HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:=True, _
ShowValue:=False, ShowPercentage:=False, ShowBubbleSize:=False
For iY = 1 To ActiveChart.SeriesCollection(1).Points.Count
Select Case ActiveChart.SeriesCollection(1).Points(iY).DataLabel.Text
Case Is = "a"
ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 1
Case Is = "b"
ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 2
Case Is = "c"
ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 3
Case Is = "d"
ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 4
Case Is = "e"
ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 5
Case Is = "f"
ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 6
Case Else
'Other groups get no special color
End Select
Next
Next
End_Sub:
If bHasDataLabels Then
ActiveChart.ApplyDataLabels AutoText:=True, _
HasLeaderLines:=True, ShowSeriesName:=bShowSeriesName, ShowCategoryName:=bShowCategoryName, _
ShowValue:=bShowValue, ShowPercentage:=bShowPercentage, ShowBubbleSize:=False
Else
ActiveChart.SeriesCollection(1).HasDataLabels = False
End If
End Sub
Sub SetWorkbookColors()
ActiveWorkbook.Colors(1) = RGB(0, 0, 0)
ActiveWorkbook.Colors(2) = RGB(0, 0, 100)
ActiveWorkbook.Colors(3) = RGB(0, 100, 0)
ActiveWorkbook.Colors(4) = RGB(0, 100, 100)
ActiveWorkbook.Colors(5) = RGB(100, 0, 0)
ActiveWorkbook.Colors(6) = RGB(100, 0, 100)
End Sub
Sub ResetWorkbookColors()
ActiveWorkbook.ResetColors
End Sub