Como usar o VBA para colorir um gráfico de pizza
Eu tenho o seguinte código em que o código tenta criar um gráfico de bolhas com gráficos de pizza como as bolhas. Como nesta versão os temas de cores são usados para criar uma cor diferente em cada gráfico de pizza (bolha) na parte da função, tenho o problema de que ela funciona dependendo dos caminhos para as paletas de cores.
Existe uma maneira fácil de fazer a função de uma maneira que funcione independentemente desses caminhos, seja codificando uma cor para cada segmento do gráfico de pizza ou usando caminhos padronizados (provavelmente não é possível, não é preferível).
Sub PieMarkers()
Dim chtMarker As Chart
Dim chtMain As Chart
Dim intPoint As Integer
Dim rngRow As Range
Dim lngPointIndex As Long
Dim thmColor As Long
Dim myTheme As String
Application.ScreenUpdating = False
Set chtMarker = ActiveSheet.ChartObjects("chtMarker").Chart
Set chtMain = ActiveSheet.ChartObjects("chtMain").Chart
Set chtMain = ActiveSheet.ChartObjects("chtMain").Chart
Set rngRow = Range(ThisWorkbook.Names("PieChartValues").RefersTo)
For Each rngRow In Range("PieChartValues").Rows
chtMarker.SeriesCollection(1).Values = rngRow
ThisWorkbook.Theme.ThemeColorScheme.Load GetColorScheme(thmColor)
chtMarker.Parent.CopyPicture xlScreen, xlPicture
lngPointIndex = lngPointIndex + 1
chtMain.SeriesCollection(1).Points(lngPointIndex).Paste
thmColor = thmColor + 1
Next
lngPointIndex = 0
Application.ScreenUpdating = True
End Sub
Function GetColorScheme(i As Long) As String
Const thmColor1 As String = "C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors\Blue Green.xml"
Const thmColor2 As String = "C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors\Orange Red.xml"
Select Case i Mod 2
Case 0
GetColorScheme = thmColor1
Case 1
GetColorScheme = thmColor2
End Select
End Function
O código copia um único gráfico de novo e de novo nas bolhas. Então, eu gostaria de alterar a função (agora chamada de Get colourscheme) em uma função que atribui uma cor RGB exclusiva a cada segmento de cada gráfico de pizza. Uma questão semelhante é discutida aquiAlterar a cor do ponto no gráfico excel VBA mas o código aparentemente não funcionou para a pessoa que estava perguntando. Alguém poderia me dar algum conselho sobre como reescrever a parte da função do código
Minha abordagem aproximada seria:
selecione a planilha e, em seguida, pegue cada gráfico depois que ele for copiadoaltere a cor de cada segmento com um código RGB exclusivoMas como eu iria implementá-lo em VBA não é claro para mim. Eu realmente aprecio qualquer comentário sobre o assunto.