Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Postato originariamente da alip1: Buongiorno Carlo.
Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie
Il metodo più semplice è aprire VBA in Excel e guardare i codici esadecimali che risultano in base ai colori scelti.
In allegato immagine VBA aperto in Excel con in evidenza i colori rosso, verde e blu di un form
Postato originariamente da alip1: Buongiorno Carlo.
Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie
Il metodo più semplice è aprire VBA in Excel e guardare i codici esadecimali che risultano in base ai colori scelti.
In allegato immagine VBA aperto in Excel con in evidenza i colori rosso, verde e blu di un form
Grazie Carlo. In verità speravo che in giro ci fosse della documentazione sull'argomento da poter consultare. Buon lavoro.
Ultima modifica effettuata da alip1 il 14/06/2024 alle 19:54
Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie
La risposta che ti ho dato a questa domanda, intendeva mostrarti che spesso le risposte sono sotto al nostro naso, l'IDE di VBA e VisualStudio sono degli insegnanti instancabili, basta leggere/notare/comprendere i feedback e gli aiuti che danno.
Testo quotato
Postato originariamente da alip1: Grazie Carlo. In verità speravo che in giro ci fosse della documentazione sull'argomento da poter consultare. Buon lavoro.
Se ti piace manipolare le stringhe, qui di seguito un esempio che converte il valore decimale di un colore VBA in una stringa esadecimale e poi con .Substrig divide le varie componenti:
Codice sorgente - presumibilmente VB.NET
PublicFunction Convert24bitColor(VBAdecColor AsInteger)As Color
Dim r AsInteger
Dim g AsInteger
Dim b AsInteger
Dim col AsString
'trasforma il colore in una stringa esadecimale
col =Hex(VBAdecColor)
'aggiunge gli zeri mancanti a sinistra in modo che i numeri piccoli abbiano almeno 6 caratteri
col = col.PadLeft(6, "0")
'blu, primi due caratteri
b =CInt("&h"& col.Substring(0, 2))
'verde, secondi due caratteri
g =CInt("&h"& col.Substring(2, 2))
'rosso, ultimi due caratteri
r =CInt("&h"& col.Substring(4, 2))
Return Color.FromArgb(r, g, b)
EndFunction
Naturalmente rispetto al metodo con lo scorrimento dei bit è meno efficiente
Ultima modifica effettuata da Carlo il 14/06/2024 alle 20:57
Solo una domanda di curiosita': dove è possibile apprendere che il formato in bit dei colori in vba ha quello da te correttamente indicato 8b8g8r? Grazie
La risposta che ti ho dato a questa domanda, intendeva mostrarti che spesso le risposte sono sotto al nostro naso, l'IDE di VBA e VisualStudio sono degli insegnanti instancabili, basta leggere/notare/comprendere i feedback e gli aiuti che danno.
Testo quotato
Postato originariamente da alip1: Grazie Carlo. In verità speravo che in giro ci fosse della documentazione sull'argomento da poter consultare. Buon lavoro.
Se ti piace manipolare le stringhe, qui di seguito un esempio che converte il valore decimale di un colore VBA in una stringa esadecimale e poi con .Substrig divide le varie componenti:
Codice sorgente - presumibilmente VB.NET
PublicFunction Convert24bitColor(VBAdecColor AsInteger)As Color
Dim r AsInteger
Dim g AsInteger
Dim b AsInteger
Dim col AsString
'trasforma il colore in una stringa esadecimale
col =Hex(VBAdecColor)
'aggiunge gli zeri mancanti a sinistra in modo che i numeri piccoli abbiano almeno 6 caratteri
col = col.PadLeft(6, "0")
'blu, primi due caratteri
b =CInt("&h"& col.Substring(0, 2))
'verde, secondi due caratteri
g =CInt("&h"& col.Substring(2, 2))
'rosso, ultimi due caratteri
r =CInt("&h"& col.Substring(4, 2))
Return Color.FromArgb(r, g, b)
EndFunction
Naturalmente rispetto al metodo con lo scorrimento dei bit è meno efficiente