Обновление распределенных макросов Word VBA - возможно ли это, как бы вы это сделали? - PullRequest
1 голос
/ 18 марта 2011

У меня есть макрос VBA, который выполняется в Word 2003. Это один модуль и код, прикрепленный к пользовательской форме, и он идет примерно к 30 клиентским сайтам. Когда я впервые развернул это, я отправил кого-то по кругу на каждый сайт, чтобы поместить шаблон .dot в папку Word Startup каждого из 30 блоков, после чего макрос отображается в виде кнопки на панели инструментов для каждого пользователя.

Все пользователи подключены к Интернету.

Расположение шаблона .dot варьируется от машины к машине, поэтому я полагаю, что «установщики» будут вне игры.

Я ожидаю, что сделанный макрос нужно время от времени менять. Можно ли как-нибудь заставить пользователя нажать кнопку, чтобы макрос сам обновился?

Независимо от того, нажимается ли кнопка или выполняется автоматический запуск проверки на наличие обновлений, мне, вероятно, нужно знать, как определить, откуда выполняется макрос (путь) без необходимости сохранения документа, и как найти путь к инструментам папки «Автозагрузка». > параметры> расположение файлов, но программно.

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Это можно сделать.

  1. создайте 2 файла .dot, loader.dot (проверяет наличие обновлений) и worker.dot (основной макрос, который вы используете и хотите иметь возможность автоматического обновления).

  2. первый файл loader.dot должен находиться в C: \ Program Files \ Microsoft Office \ OFFICE11 \ STARTUP

Это надежное расположение, и макрос будет загружен в любой документ Word. Используйте функцию AutoExec (), чтобы убедиться, что она запускается при загрузке слова doc.

worker.dot может находиться в любом фиксированном месте установки, например C: \ YourApp \ worker.dot

Логика в loader.dot заключается в удалении любой ссылки на worker.dot (мне пришлось включить доверие модели VBA в настройках безопасности макросов), чтобы проверить наличие обновлений с помощью вызова http, если новая версия доступна, загрузите ее, перезаписав worker.dot , затем добавьте ссылку из файла с указанием worker.dot

0 голосов
/ 18 марта 2011

Я не уверен, что модель "пользователь нажимает кнопку" идеальна.

Я бы посмотрел на создание шаблона "загрузчик". Его работа заключается в запуске при запуске и поиске обновлений уже имеющегося шаблона / макроса и загрузке / установке / любых таких файлов при их изменении. Затем загрузите все, что установлено локально для использования.

Вам также следует подумать, не является ли это проблемой, если обновление доступно, но кто-то не использует его (возможно, они запустили Word до того, как изменение было загружено, или они отключены). Кроме того, вам нужно знать, какую версию люди используют? Обратитесь к вашему загрузчику по HTTP, электронной почте или другим способом (Twitter?)

Любой такой загрузчик должен либо быть очень стабильным (в противном случае вы просто заменяете погоню за заменой целевого шаблона на замену загрузчика), либо можете обновлять себя при необходимости.

...