Determinazione del valore RGB di un colore (Microsoft Excel)
Neil usa molto i colori nei suoi fogli di lavoro. Sa che può generare un colore basato su un valore RGB numerico (come spiegato in altre questioni relative a ExcelTips). Neil vorrebbe fare l’opposto: determinare un valore RGB. Si chiede se ci sia un modo per tornare (tramite funzione o macro)
il valore RGB del colore utilizzato per riempire una cella. (Neil vuole che il colore effettivo venga applicato alla cella, non un colore “sovrascrittura”, come quello imposto da un formato condizionale.)
Excel non include una funzione per farlo, ma se hai solo bisogno di controllare i valori RGB per una singola cella, il modo più semplice è seguire questi passaggi:
-
Seleziona la cella formattata con il colore che desideri controllare.
-
Visualizza la scheda Home della barra multifunzione.
-
Fare clic sulla freccia in basso sul lato destro dello strumento Colore riempimento, nel gruppo Carattere. Excel visualizza una piccola tavolozza di colori e alcune altre opzioni.
-
Scegli più colori. Excel visualizza la finestra di dialogo Colori.
-
Assicurati che sia visualizzata la scheda Personalizza. (Vedi figura 1.)
-
Nella parte inferiore della finestra di dialogo è possibile visualizzare i singoli valori per i componenti rosso, verde e blu del colore nella cella.
-
Fai clic su OK quando hai finito.
Se hai bisogno di ottenere i valori più spesso, la strada da percorrere è creare la tua funzione definita dall’utente. La funzione che usi dipende da cosa vuoi che sia effettivamente restituito al tuo foglio di lavoro. Ad esempio, se vuoi che venga restituito il tradizionale codice esadecimale di sei caratteri per i colori RGB, dovresti usare la seguente macro molto semplice:
Function getRGB1(rcell) As String Dim sColor As String sColor = Right("000000" & Hex(rcell.Interior.Color), 6) getRGB1 = Right(sColor, 2) & Mid(sColor, 3, 2) & Left(sColor, 2) End Function
Questa macro esamina il colore interno di qualsiasi cella a cui fai riferimento, inserisce i valori esadecimali per il colore nell’ordine corretto e restituisce la stringa a Excel. Per utilizzare la funzione è sufficiente richiamarla, nel foglio di lavoro, con una cella referenziata in questo modo:
=getRGB1(B4)
Tuttavia, potresti non volere i tradizionali codici esadecimali per i colori RGB.
Se vuoi ottenere i valori decimali per ciascuno dei colori, la seguente macro restituisce che:
Function getRGB2(rcell) As String Dim C As Long Dim R As Long Dim G As Long Dim B As Long C = rcell.Interior.Color R = C Mod 256 G = C \ 256 Mod 256 B = C \ 65536 Mod 256 getRGB2 = "R=" & R & ", G=" & G & ", B=" & B End Function
Richiamata allo stesso modo della macro getRGB1, questa versione restituisce una stringa come “R = 255, G = 204, B = 0”. Puoi anche modificare ulteriormente la macro in modo che restituisca un singolo valore, in base a un parametro impostato:
Function getRGB3(rcell As Range, Optional opt As Integer) As Long Dim C As Long Dim R As Long Dim G As Long Dim B As Long C = rcell.Interior.Color R = C Mod 256 G = C \ 256 Mod 256 B = C \ 65536 Mod 256 If opt = 1 Then getRGB3 = R ElseIf opt = 2 Then getRGB3 = G ElseIf opt = 3 Then getRGB3 = B Else getRGB3 = C End If End Function
Per utilizzare la macro, aggiungi semplicemente un secondo parametro alla funzione utilizzata nel tuo foglio di lavoro, specificando quello che vuoi:
=getRGB3(B4,1)
Se il secondo parametro è 1, la funzione restituisce solo il valore rosso. Se si specifica un secondo parametro di 2, viene restituito il valore verde e 3 restituisce il valore blu. Qualsiasi altro valore per il secondo parametro (o se lo si omette completamente) restituisce il valore decimale completo del colore interno.
Se non vuoi seguire la strada della creazione di una macro o se desideri determinare i colori in più del tuo foglio di lavoro Excel, potresti prendere in considerazione un’utilità di terze parti. Uno che sembra interessante è Instant Eyedropper, che è gratuito. Puoi trovare maggiori informazioni a riguardo qui:
http://instant-eyedropper.com
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (10180) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia di menu precedente di Excel qui: