Per il momento ho risolto scrivendo

foglioExcel.Cells(i, 1) = Format(Codice, "! @@@@@@@")

la chiocciola è il segnaposto di un carattere stringa;
il punto esclamativo impone il riempimento da sinistra a destra (di default è il contrario);
lo spazio tra punto esclamativo e prima chiocciola fa funzionare meglio il tutto, senza spazio Excel 11 non trasforma il codice in data, ma compare nella cella il classico triangolino verde che informa del formato data non corretto;
nella cella mi ritrovo il codice con uno spazio vuoto davanti, ma la cosa, per fortuna, non è condizionante.

Proverò con le macro di Excel, non ci avevo pensato, grazie del consiglio.