Zmień kolory wykresu kołowego

0

Czy ktoś może podać przykład zmiany kolorów wykresu kołowego? (Rzeczywiste kawałki wykresu kołowego). Kawałki są nazywane punktami? Chciałbym wybrać kolor za pomocą RGB dla każdego elementu. Dzięki!

user1813558
źródło

Odpowiedzi:

1

Osobiście Blog Peltiera to moje ulubione źródło wykresów w Excelu. Więc spójrz na niektóre próbki, o których tam dyskutował. Wiedzieć więcej tutaj to MVP

Nie sądzę, żeby wspaniale było tutaj kopiować jego kody . Wypróbuj więc tutoriale podane w powyższych materiałach i skomentuj, jeśli masz dodatkowe pytania. A oto kilka faktów, które uważam za pomocne w twoim przypadku Planowanie podróży być gładkim i zabawnym.

Być bardzo konkretnym RGB Colour formatowanie twojego pie chart plasterki, oto linia kodu:

Na przykład.

ActiveChart.SeriesCollection(1).Points(1).Interior.Color = RGB(0, 176, 80)

Możesz znaleźć RGB numery kolorów z MS Paint aplikacja w systemie Windows :) Tutaj jest artykuł, który pokazuje niektóre kolory i odpowiadające im RGB liczby.

Ponieważ spektrum kolorów jest nieskończone, powinno być wystarczająco dobre, aby zabarwić Twoje dodatkowe multi plasterki pie chart, możesz myśleć ... JEDNAK nie zapomnij, że domyślna paleta kolorów Excel ma 56 indeksów kolorów. Podobnie jak w programie Excel 2003. Czasami pojawiają się problemy z używaniem pliku Chart w innej wersji programu Excel - tam, gdzie brakuje niektórych kolorów i są one zastępowane przez mało atrakcyjne stare kolory;)

Na przykład. Wykres utworzony w programie Excel 2007 i nowszych ma bogate graficzne wrażenia kolorystyczne dla użytkownika. Jednak program Excel 2003 nie zapewnia takich możliwości, ale jest łatwy w zarządzaniu (choć niezwykle wydajny). W programie Excel 2007 i nowszych skoroszytach można obsługiwać miliony kolorów, ale nadal istnieje podstawowa paleta skoroszytów, która ma 56 kolorów.

Tak więc, kiedy napotkasz takie problemy lub zostaniesz przeczytany, aby sobie z tym poradzić, sprawdź ten artykuł:

bonCodigo
źródło
Więc potrzebuje kodu? Czy możliwe jest zapisanie danych (na przykład jako szesnastkowy ciąg RGB) w kolumnie na arkuszu z danymi i nakazanie Excelowi wybrania tam kolorów?
dumbledad
0

Źródło

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
salih0vicX
źródło