Estoy implementando un módulo de VBA de estilo de límite temprano que necesita Scripting.Dictionary y RegExp.¿Cómo agrego programáticamente una referencia a un proyecto de VBA?
El script, de forma predecible, falla cuando se ejecuta en otra computadora. El usuario debe ir a Herramientas-> Referencia en el IDE de VBA y agregar manualmente una referencia a esas dos bibliotecas para que funcione.
Por lo tanto, yace el problema. Pedir al usuario final no técnico que vaya al IDE y agregar referencias manualmente es pedir demasiado.
La otra alternativa es reescribir todo (script muy largo escrito por otra persona) para utilizar el enlace tardío. Prefiero no tomar este camino si hay otros métodos.
Como altervative, algunas personas sugieren que se añada una referencia mediante programación de este modo:
Application.VBE.ActiveVBProject.References.AddFromFile [Path to library]
- ¿Es esta la solución correcta y si es así ¿hay desventajas de esta estrategia?
- De lo contrario, existen otros métodos que permitirán que el código permanezca enlazado previamente, pero no requieren que el usuario agregue referencias manualmente.
Sugerencias que implican llamadas directas a la API Win32/64 también son bienvenidas.
Gracias.
El único inconveniente que se me ocurre al ir por la ruta VBE es que el usuario deberá habilitar específicamente el acceso programático al modelo de proyecto de VBA. Un problema bastante menor sin embargo. Esa es la ruta que tomaría si estuviera en su lugar. –