Макросы в основном текстовом документе теряются в объединенном документе

Я выполняю mailmerge через приложение VB, соединяющее данные из CSV с существующим основным документом Word (2010), который содержит некоторые макросы. Когда слияние завершено, я показываю объединенный документ с данными, и клиент хочет запустить некоторые макросы, которые были в основном документе, для объединенного документа. Однако макросы из основного документа не существуют в объединенном документе, и мне интересно, есть ли какой-нибудь способ заставить их отправиться в поездку.

(Я сохраняю объединенный документ перед отображением пользователю, так что, может быть, сохранение заставляет меня их потерять?)


person John DMC    schedule 24.10.2013    source источник


Ответы (1)


Правильно - макросы не копируются. Если бы это было так, вы можете представить себе, что может возникнуть огромная проблема обслуживания, поскольку каждый созданный документ слияния будет иметь копию макросов, а не указатель на них.

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

Но когда вы этого не сделаете, ни автоматические макросы, такие как autoopen и autonew, теперь эквивалентные события документа будут запускаться автоматически при создании или завершении выходного документа слияния.

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

Если вам действительно нужно скопировать макросы в выходной документ, я думаю, вам будет лучше хранить их в файле .bas вне любого документа Word, и вы можете использовать библиотеку VB Extensibility, чтобы загрузить их в выходной файл. документ.

person Community    schedule 25.10.2013