Myslím, že ideální kód není ani použití WHILE ... LOOP, protože celý výpočet se dá řešit jediným řádkem a funkce CompleteRGB není vůbec nutná. Věřím, že taková varianta bude nejrychlejší. Tady je kód, kterým je možné funkci CompleteRGB buď úplně nahradit nebo aspoň vyplnit:
"#" & String(6 - Len(Hex(RGB(r, g, b))), 48) & Hex(RGB(r, g, b))
Vím, že to není pro začítečníka úplně průhledné, ale právě takové příklady jsou nejvíce inspirující (znám to na sobě).
Pozn. Funkce String má dva argumenty: počet znaků a ASCII kód opakovaného znaku. 48 je samozřejmě kód pro nulu.