Eine klitzekleine Kleinigkeit hab ich zu meckern.
Das ist nicht so schön. Man wandelt zuerst einen Ganzzahl-Wert in einen String (genauer: in die Hexadezimaldarstellung) um, dann konkateniert man "0xFF0000" mit diesem String, nur um dann letztendlich wieder einen Cast zu einem Integer beim Aufruf von PenSetColor durchzuführen. Das ist volles Ausnutzen des Variant-Types, kostet aber wirklich einiges an Laufzeit, relativ gesehen. Dabei tut es auch eine simple Addition:
Das ist jetzt ungetestet, sollte aber auch funktionieren. Und ist nicht so Durch-Die-Brust-Ins-Auge-Mäßig.