Jak używać VBA do kolorowania wykresu kołowego

Mam następujący kod, w którym kod próbuje utworzyć wykres bąbelkowy z wykresami kołowymi jako bąbelkami. Ponieważ w tej wersji motywy kolorów są używane do tworzenia innego koloru na każdym wykresie kołowym (bąbelku) w części funkcji, mam problem, który działa w zależności od ścieżek do palet kolorów.

Czy istnieje prosty sposób na sprawienie, aby funkcja działała niezależnie od tych ścieżek, albo przez kodowanie koloru dla każdego segmentu wykresu kołowego, albo przez użycie standardowych ścieżek (prawdopodobnie nie jest to możliwe, a nie preferowane).

    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

Kod ponownie kopiuje pojedynczy wykres na bąbelkach. Chciałbym więc zmienić funkcję (obecnie zwaną Get colourscheme) na funkcję, która przypisuje unikalny kolor RGB do każdego segmentu każdego wykresu kołowego. Podobny problem omówiono tutajZmień kolor punktu na wykresie w VBA ale kod najwyraźniej nie działał dla osoby, która pytała. Czy ktoś może mi doradzić, jak przepisać część kodu funkcji

Moim szorstkim podejściem byłoby:

wybierz arkusz, a następnie złap każdy wykres po skopiowaniuzmień kolor każdego segmentu za pomocą unikalnego kodu RGB

Ale sposób, w jaki zaimplementowałbym go w VBA, nie jest dla mnie jasny. Naprawdę doceniłbym wszelkie komentarze na ten temat.

questionAnswers(2)

yourAnswerToTheQuestion