Get the font color of a cell in Excel

indsæt subtitle

Excel
Forfatter

Christian Knudsen

Udgivet

10. september 2018

Folk gør fantastiske ting i Excel.

Og undertiden skal andre folk pille data ud af de regneark.

Disse “andre folk” bruger meget tid på at græde… Og en af de ting der får os til at græde er hvis der bruges farver til at gemme data i et regneark.

Lad mig forklare ud fra et konkret eksempel.

Jeg skulle trække data ud af et regneark, hvor “noget” kunne have en værdi; 1, 2 eller 3. Det blev selvfølgelig angivet med et “x”. “x” i kolonnen med overskriven “1” hvis værdien var 1 osv. Det “x” skulle konverteres til et tal (1-3).

Det var let nok. Hvad der var en større udfordring var at der kunne være to “x”’er. Et - med sort skriftfarve, der angav den nuværende tilstand. Og et andet “x” med rød skriftfarve, der angav hvad en fremtidig, ønsket, tilstand, skulle være.

Så det var nødvendigt at kunne identificere farven på et givet x. Det kan gøres med VBA:

Function GetColour(ByVal Target As Range) As Single
Application.Volatile
GetColour = Target.Font.Color
End Function

Og hvis vi skal bruge en logisk test:

Function IsBlack(ByVal Target As Range) As Boolean
Application.Volatile
If Target.Font.Color = 0 Then
IsBlack = True
Else
IsBlack = False
End If
End Function

Og hvordan skulle det så have været gjort rigtigt? Hvis værdien skal være 1, 2 eller 3, så lader man være med at have en kolonne for hver værdi, med mulighed for at sætte et “x”. I stedet har man en kolonne hvor man skriver 1, 2 eller 3.

Hvad så med den potentielle ønskede fremtidige tilstand? Det er yderligere en variabel for en given observation, og skal derfor have sin egen kolonne. Med indholdet 1, 2 eller 3.