Lo que sigue se centra en Excel, pero estoy bastante seguro de que lo mismo se aplicaría a cualquier producto de Office.
La manera fácil es guardar su código reutilizable como un complemento (* .xla para Excel 2003, * .xlam para Excel 2007+). A continuación, agrega el complemento a Excel y todas las hojas de cálculo que abra tendrán acceso a las funciones personalizadas que tiene en su complemento. Si agrega un código VBA específico a una hoja de cálculo, puede agregar una referencia a su complemento y su código VBA tendrá acceso a todas las sub, funciones y clases públicas de su complemento.
En mi organización, utilizamos 3 complementos caseros - se almacenan en C: \ Program Files \ OrganisationName. Y todos tienen acceso a ellos. Cuando se realiza una actualización, solo tenemos que copiar la nueva versión en el disco duro de todos y reiniciar Excel y tienen la nueva versión.
Los complementos contienen funciones de servicios públicos, tales como funciones de:
- leer datos desde/escribir datos en hojas de cálculo/bases de datos/archivos.
- los datos habituales de manipulación, tales como la eliminación de duplicados de una lista
- funciones estadísticas avanzadas
- etc.
algunos inconvenientes:
- Si tiene varias instancias de Excel abiertos, sólo se uno puede actualizar el complemento, las otras instancias están en modo de solo lectura
- Si Excel se bloquea, el modo de recuperación automática generalmente no guarda el los cambios realizados en el complemento (TBC en las versiones más recientes) - hay algunas herramientas para auto ahorran regularmente
Una alternativa es desarrollar XLL o bibliotecas COM en VB o C#, por ejemplo, pero esto es algo que tengo no probado.
Hay muchos tutoriales en línea si necesita un procedimiento más detallado.
Perfecto. Me quedé atrapado un poco porque olvidé establecer una referencia, pero una vez que volví a leer tu publicación e hice eso, todo funcionó correctamente. Gracias :) –
Uno de sus inconvenientes (actualización) se resuelve aquí: http://www.excelguru.ca/content.php?152-Deploying-Add-ins-in-a-Network-Environment. Espero que esto ayude a cualquiera que venga aquí en el futuro. –