Pregunta

Tengo una macro VBA que se ejecuta en Word 2003. Es un módulo y el código adjunto a un formulario de usuario, y va a unos 30 sitios de clientes.Cuando implementé esto por primera vez, envié a alguien a cada sitio para colocar una plantilla .dot en la carpeta de inicio de Word de cada uno de los 30 cuadros, lo que luego hace que la macro aparezca como un botón en la barra de herramientas para cada usuario.

Todos los usuarios están conectados a Internet.

La ubicación de la plantilla .dot varía de una máquina a otra, así que supongo que los "instaladores" estarían fuera de juego.

Anticipo que la macro creada debe cambiar de vez en cuando.¿Hay alguna forma de que el usuario presione un botón para que la macro se actualice sola?

Ya sea que se trate de un botón de comando o de ejecución automática para verificar la actualización, presumiblemente necesitaría saber cómo determinar desde dónde se está ejecutando la macro (ruta) sin que necesariamente se haya guardado un documento, y cómo encontrar la ruta a las herramientas de la carpeta de Inicio> opciones> ubicaciones de archivos pero programáticamente.

¿Fue útil?

Solución

Esto se puede hacer.

  1. Cree 2 archivos .dot, loader.dot (busca actualizaciones) y worker.dot (la macro principal que está usando y desea poder actualizar automáticamente).

  2. el primer loader.dot debe ir a C: \ Archivos de programa \ Microsoft Office \ OFFICE11 \ STARTUP

Esta es una ubicación confiable y la macro se cargará en cualquier documento de Word.Utilice una subrutina AutoExec () para asegurarse de que se ejecute siempre que se cargue un documento de Word.

worker.dot puede ir a cualquier ubicación de instalación fija, p. ej.C: \ yourapp \ worker.dot

La lógica en loader.dot es eliminar cualquier referencia a worker.dot (tuve que habilitar la confianza del modelo VBA en la configuración de seguridad de macros) verifique si hay una actualización usando una llamada http, si hay una nueva versión disponible, descárguela sobrescribiendo worker.dot, luego agregue la referencia del archivo que especifica worker.dot

Otros consejos

No estoy seguro de que el modelo de usuario presionando un botón sea ideal.

Me gustaría crear una plantilla de "cargador".Su trabajo sería ejecutarlo al inicio y buscar actualizaciones de la plantilla / macro que ya tiene y descargar / instalar / cualquier archivo de este tipo cuando cambien.Luego cargue lo que esté instalado localmente para su uso.

También debe pensar si es un problema si hay una actualización disponible pero alguien no la usa (tal vez iniciaron Word antes de que se cargara el cambio o no estén en línea).Además, ¿necesita saber qué versión está usando la gente?Haga que su cargador le informe, a través de HTTP, correo electrónico o algún otro método (¿Twitter?)

Cualquier cargador de este tipo debe ser muy estable (de lo contrario, simplemente reemplace perseguir reemplazando la plantilla de destino con perseguir reemplazando el cargador) o poder actualizarse cuando sea necesario.

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