C'est pas compliqué :
Si vous utilisez une procédure ou une fonction que vous avez créé, il n'y a pas de référence à ajouter.
Si vous utilisez une procédure ou une fonction que vous n'avez pas créé, il faut ajouter une référence.
Appuyer sur F1 quand le curseur est sur une instruction permet d'ouvrir l'aide sur cette fonction / procédure. Son assembly est indiqué dans l'aide.
Plus généralement, si vous devez utiliser excel, il faut la référence vers Office (qui fournit les objets de base pour les applications Office) et une référence vers Excel (pour avoir accès aux objets, procédures et fonctions spécifiques d'Excel)
Si vous utilisez Word, il faut la référence vers Office et Word.
Pour simplifier votre macro, mis à par si l'on peut passer en paramètre à la fonction ExecuteExcel4Macro() une plage, elle devrait retourner un tableau de String. Il ne reste qu'à binder le tableau à la propriété RowSource du combobox. (A vérifier que la valeur retournée par la macro est bien un tableau de String sinon, le convertir)
Il est aussi possible de faire comme dans le lien proposé par d.roger.
Utiliser ADO pour ça, c'est un peu comme utiliser une arme nucléaire pour tuer un moustique mais c'est largement fesable. (du moment que l'on comprend le principe d'ADO)
Pour faire simple, ADO est un ensemble d'outils permettant d'accéder à des données que ce soit une base de données SQL ou Access, un fichier Excel, ...
Il utilise un moteur de base de données, des requêtes SQL et un pointeur pour aller chercher les données. On ouvre une connection en spécifiant le moteur de base de données à utiliser et le fichier, on pose une question au moteur de base de données (la requête SQL) et on parcours le résultat de la requête avec le pointeur.