Ein Tipp: Die Excel-Palette hat zwei Reihen von Farben, die selten verwendet werden und können in der Regel, um benutzerdefinierte Werte ohne sichtbare Änderungen anderer Völker Blätter eingestellt werden.
Hier ist der Code, um einen vernünftigen Satz von 'Soft-Ton' Farben zu erzeugen, die die Standardwerte weit weniger verletzend als:
Public Sub SetPalePalette(Optional wbk As Excel.Workbook)
' This subroutine creates a custom palette of pale tones which you can use for controls, headings and dialogues
'
' ** THIS CODE IS IN THE PUBLIC DOMAIN **
' Nigel Heffernan http://Excellerando.Blogspot.com
' The Excel color palette has two hidden rows which are rarely used:
' Row 1: colors 17 to 24
' Row 2: colors 25 to 32 - USED BY SetGrayPalette in this workbook
'
' Code to capture existing Screen Updating settting and, if necessary,
' temporarily suspend updating while this procedure generates irritating
' flickers onscreen... and restore screen updating on exit if required.
Dim bScreenUpdating As Boolean
bScreenUpdating = Application.ScreenUpdating
If bScreenUpdating = True Then
Application.ScreenUpdating = False
End If
'If Application.ScreenUpdating <> bScreenUpdating Then
' Application.ScreenUpdating = bScreenUpdating
'End If
If wbk Is Nothing Then
Set wbk = ThisWorkbook
End If
With wbk
.Colors(17) = &HFFFFD0 ' pale cyan
.Colors(18) = &HD8FFD8 ' pale green.
.Colors(19) = &HD0FFFF ' pale yellow
.Colors(20) = &HC8E8FF ' pale orange
.Colors(21) = &HDBDBFF ' pale pink
.Colors(22) = &HFFE0FF ' pale magenta
.Colors(23) = &HFFE8E8 ' lavender
.Colors(24) = &HFFF0F0 ' paler lavender
End With
Wenn Application.ScreenUpdating <> bScreenUpdating Dann
Anwendung.ScreenUpdating = bScreenUpdating
End If
End Sub
Public Sub SetGreyPalette()
'für Kontrollen, Überschriften und Dialoge Dieses Unterprogramm eine eigene Palette von greyshades erstellt, die Sie
verwenden können' ** THIS Code ist im PUBLIC DOMAIN **
'Nigel Heffernan http://Excellerando.Blogspot.com
' Die Excel-Farbpalette hat zwei versteckte Zeilen, die selten verwendet werden:
'Row 1: Farben 17 bis 24' - USED BY SetPalePalette in dieser Arbeitsmappe
'Row 2: Farben 25 bis 32
' Code erfassen Bildschirmaktualisierung bestehenden settting und, falls erforderlich,
'vorübergehend Aktualisierung während dieses suspendieren Verfahren erzeugt irritierende
'flackert auf dem Bildschirm ... Denken Sie daran, die Bildschirmaktualisierung beim Beenden wiederherzustellen!
Dim bScreenUpdating As Boolean
bScreenUpdating = Application.ScreenUpdating
Wenn bScreenUpdating = True Then
Application.ScreenUpdating = False
End If
'Wenn Application.ScreenUpdating <> bScreenUpdating Dann
' Application.ScreenUpdating = bScreenUpdating
'Ende Wenn
Mit Diesearbeitsmappe
.colors (25) = & HF0F0F0
.colors (26) = & HE8E8E8
.colors (27) = & HE0E0E0
.colors (28) = & HD8D8D8
.colors (29) = & HD0D0D0
. Farben (30) = & HC8C8C8
'& HC0C0C0' Ausgelassene & HC0C0C0 - das ist das regelmäßige 25% grau in der Hauptpalette ist
.colors (31) = & HB8B8B8 'Beachten Sie, dass die Lücken werden immer breiter: das menschliche Auge mehr empfindlich
. Farben (32) = & HA8A8A8 ' auf Änderungen des Licht Grays, so wird dies als eine End lineare Skala
wahrgenommen wird mit
‚Die rechte Spalte der Excel Standardpalette gibt die folgenden Grays:
‘ Farben (56) = & H333333
'Farben (16) = & H808080
' Farben (48) = & H969696
'Farben (15) = & HC0C0C0' '25% des Standardgrau '
' Dies soll die Farbe ‚Lücke zu verbessern, modifiziert werden 'und machen Sie die Farben leicht-distinguishab le:
Mit Diesearbeitsmappe
.colors (56) = & H505050
.colors (16) = & H707070
.colors (48) = & H989898
'.Farben (15) = & HC0C0C0
End With
Wenn Application.ScreenUpdating <> bScreenUpdating Dann
Application.ScreenUpdating = bScreenUpdating
End If
End Sub
Sie können wählen, um die Funktionen CaptureColors und ReinestColors für die Open() - und BeforeClose() - Ereignisse jeder Arbeitsmappe zu schreiben ... oder sogar für jede Arbeit heet's aktiviert und deaktiviert das Ereignis.
Ich habe irgendwo Code herumliegen, der einen 'thermischen' Farbverlauf für 3-D-Diagramme erzeugt, der Ihnen eine Fortentwicklung von 'Kalt' Blau zu 'Heiß' Rot in zweiunddreißig Schritten gibt. Dies ist schwieriger, als Sie vielleicht denken: Ein Farbverlauf, der vom menschlichen visuellen System als "gleiche Intervalle" wahrgenommen wird (das auf einer logarithmischen Skala der Intensität verläuft und nichtlineare Gewichtungen für Rot, Grün und Blau als "starke" Farben hat)) braucht Zeit, um zu konstruieren - und Sie müssen VBA verwenden, um MS Chart zu zwingen, die von Ihnen angegebenen Farben in der von Ihnen angegebenen Reihenfolge zu verwenden.
Sie * können * die Palette mit Ihren Farben aktualisieren, sollten dies aber generell vermeiden. Ein Problem besteht darin, dass das Kopieren und Einfügen in eine andere Arbeitsmappe mit einer anderen Palette unterschiedliche Farben ergibt. Aus diesem Grund ist es normalerweise besser, sich an die Standardpalette zu halten. – Joe
Ich wollte dagegen vorschlagen ... whoops, danke Joe. – LeppyR64