Puis-je utiliser la liaison tardive pour vérifier l'existence d'une bibliothèque avant de l'utiliser via une liaison précoce?

StackOverflow https://stackoverflow.com/questions/8911845

  •  29-10-2019
  •  | 
  •  

Question

J'aime utiliser la liaison précoce dans mes projets VBA, car j'aime l'achèvement automatique des noms de méthodes, etc. pendant le développement. J'aime aussi la confiance de savoir que le compilateur m'avertira si j'ai mal comploté un nom de méthode.

Cependant, pour utiliser la liaison précoce, je dois ajouter une référence à la bibliothèque pertinente (par exemple, le "Microsoft Scripting Runtime"). C'est bien pour les bibliothèques "standard" comme ça, mais parfois je veux utiliser une bibliothèque qui peut être présente ou non sur la machine de l'utilisateur.

Idéalement, je voudrais afficher un message utile si la bibliothèque n'est pas présente (comme "XYZ n'est pas installé sur cet ordinateur, et donc cette fonctionnalité ne peut pas être utilisée"). Si j'utilisais seulement en retard reliant, alors je pourrais faire ceci:

Dim o As Object
Set o = CreateObject("foo", "bar")

If o Is Nothing Then
    MsgBox "nope"
End If

Mais, si j'ai ajouté une référence à la bibliothèque afin d'utiliser une liaison précoce, alors si la bibliothèque n'est pas présente, je reçois une erreur de compilation lorsque mon projet VBA est chargé. Ainsi, rien du code exécute (y compris le code pour détecter la non-existence de la bibliothèque).

Y a-t-il un moyen de contourner ce catch-22?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top