Вопрос

Обновление 3:

Это происходит, когда я сохранил скрипт VB6, закройте слово, запустите слово, затем запустите шаблон, так как вы обычно запускаете шаблон, то есть Strtemplate становится нормальным.doc. Затем, как только я вернусь к исходному шаблону, который не был сохранен через VSTO, это восходит к наличию буквы. ДОК в переменной Strtemplate ...

Обновление 2:

В моем сценарии стартапа у меня есть линия следующим образом:

strTemplate = ActiveDocument.AttachedTemplate

В исходном шаблоне, который называется itled.dot, strtemplate = itled.dot.

Но по какой -то причине в новом шаблоне VSTO, который был основан на исходной букве. Шаблон DOT, та же самая строка выше становится нормальной. DOT, который вызывает проблемы, даже думал, что новый шаблон все еще называется Letter.dot.

Я пытался вручную кодировать

strAttTemplate = "Letter.dot"

И сценарий достигает следующего этапа, но затем он начинает жаловаться на что -то еще.

Итак, мой вопрос: оригинальный шаблон имеет Strtemplate = letter.dot, но почему это изменение на Strtemplate = normal.dot после запуска шаблона через VSTO?

Обновление 1:

После прохождения отладки для обеих версий шаблона, то есть оригинального не VSTO -шаблона и нового шаблона VSTO, я обнаружил, что у оригинала нет свойств документа, но шаблон VSTO имеет 2 свойства документа. Но это не кажется проблемой.

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

Можно ли удалить прикрепленную нормальную.

Оригинальный вопрос:

Я использую Visual Studio 2008, чтобы создать шаблонный проект Word 2003. Я выбираю опцию «Использовать существующий шаблон», который уже имеет некоторые макросценарии VB6 в фоновом режиме. По какой -то причине, когда я сохраняю проект Visual Studio, сценарий VB6 перестает работать.

Старый скрипт VB6 работает сразу же, когда шаблон открывается в Word, но когда я просто использую шаблон в VS2008, не добавляя дополнительные функциональные возможности, не сохраняю проект и создаю проект, когда я пытаюсь открыть шаблон в Word, старый сценарий стартапа не работает.

Почему это происходит?

Это было полезно?

Решение

Вероятный сценарий в том, что у вас есть рутина под названием AutoExec В вашем словом 2003.dot vba. Это не будет выполняться при развертывании в качестве шаблона VSTO, потому что это не тот тип добавленного слова, который ожидается, чтобы запустить AutoExec (Он ожидает либо файлов .wll, либо файлов .dot в папке стартапов). Путь обойти это для VSTO - использовать AutoOpen Вместо этого, который выполнит код в этой подпрограмме, когда шаблон будет открыт в виде надстройки VSTO.

Вы можете попробовать эти три в VBA (в Word, нажмите Альт + F11 Чтобы добраться до редактора Visual Basic):

Sub AutoNew()
    MsgBox "AutoNew runs when creating a document from a template"
End Sub
Sub AutoOpen()
    MsgBox "AutoOpen runs when opening a template as a document"
End Sub
Sub AutoExec()
    MsgBox "AutoExec runs when loading an add-in (a global template)"
End Sub

Другой сценарий заключается в том, что у вас нет настройки безопасности, установленных на «низких» настройки безопасности вашего машины разработки.


Что касается вашего обновления № 2, это обычно происходит, когда вы запускаете VSTO в режиме отладки (F5 вместо компиляции и запуска его Ctrl + F5). Можете ли вы подтвердить, как вы его запускаете? Если это ни один из них, это все еще нормально.

Наконец, если бы вы могли опубликовать свой полный сценарий запуска, это было бы полезно при определении того, где проблема может действительно лгать.

Другие советы

Возможно ли, что шаблон 2003 года создает DOCX или файл DOTX, а не файл DOCM или DOTM? В 2003 году и позже макрокод не будет работать, когда он находится в файле Docx или DOTX.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top