¿Puedo usar la vinculación tardía para verificar la existencia de una biblioteca antes de usarla a través de la unión temprana?

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

  •  29-10-2019
  •  | 
  •  

Pregunta

Me gusta usar la vinculación temprana en mis proyectos VBA, ya que me gusta la autocompletar los nombres de los métodos, etc. durante el desarrollo. También me gusta la confianza de saber que el compilador me advertirá si he apretado erróneamente un nombre de método.

Sin embargo, para usar la unión temprana, necesito agregar una referencia a la biblioteca relevante (por ejemplo, el "tiempo de ejecución de secuencias de comandos de Microsoft"). Eso está bien para bibliotecas "estándar" como esa, pero a veces quiero usar una biblioteca que pueda o no estar presente en la máquina del usuario.

Idealmente, me gustaría mostrar un mensaje útil si la biblioteca no está presente (como "XYZ no está instalado en esta computadora, por lo que esta característica no se puede usar"). Si solo estaba usando tarde Atingue, entonces podría hacer esto:

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

If o Is Nothing Then
    MsgBox "nope"
End If

Pero, si he agregado una referencia a la biblioteca para usar la vinculación temprana, si la biblioteca no está presente, obtengo un error de compilación cuando se carga mi proyecto VBA. De este modo, ninguna del código se ejecuta (incluido el código para detectar la no existencia de la biblioteca).

¿Hay alguna forma de alrededor de este Catch-22?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top