Инструменты Visual Studio для Office перерывы VB6 - PullRequest
1 голос
/ 17 марта 2011

ОБНОВЛЕНИЕ 3:

Это происходит, когда я сохранил VB6. сценарий, закрыть слово, начальное слово, затем запустить шаблон как обычно запустить шаблон, то есть strTemplate становится Normal.doc. Тогда, как только я вернуться к исходному шаблону, который не было сохранено через всто, что возвращается к наличию Letter.doc в переменная strTemplate ...

ОБНОВЛЕНИЕ 2:

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

strTemplate = ActiveDocument.AttachedTemplate

В исходном шаблоне с именем Letter.dot strTemplate = Letter.dot.

Но по какой-то причине в новом шаблоне vsto, который основан на оригинальном шаблоне Letter.dot, та же строка выше становится Normal.dot, что вызывает проблемы, даже если новый шаблон все еще называется Letter.dot.

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

strAttTemplate = "Letter.dot"

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

Итак, мой вопрос: в исходном шаблоне есть strTemplate = Letter.dot, но почему это меняется на strTemplate = Normal.dot после запуска шаблона через vsto?

ОБНОВЛЕНИЕ 1:

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

Похоже, проблема связана с шаблоном vsto, к которому прикреплен normal.dot, тогда как к исходному шаблону non vsto к нему не прикреплен normal.dot.

Можно ли удалить прикрепленный файл normal.dot из нового шаблона?

ОРИГИНАЛЬНЫЙ ВОПРОС:

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

старый скрипт vb6 запускается сразу, когда шаблон открывается в word, но когда я просто использую шаблон в vs2008 без добавления дополнительных функций и сохраняю проект и создаю проект, когда я пытаюсь открыть шаблон в word, старый скрипт запуска не работает.

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

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Скорее всего, у вас есть подпрограмма под названием AutoExec в Word 2003 .dot VBA.Это не будет выполняться при развертывании в качестве шаблона VSTO, потому что это не тот тип надстройки, которую Word ожидает для запуска AutoExec (он ожидает либо файлы .wll, либо файлы .dot в папке STARTUP).Способ обойти это для VSTO - использовать AutoOpen вместо этого, который будет выполнять код в этой подпрограмме, когда шаблон открывается как надстройка VSTO.

Вы можете попробовать эти три в VBA (в Wordнажмите Alt + 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

Другой сценарий: у вас не настроены параметры безопасности ""Низкий "в настройках безопасности Word вашей машины разработки.


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

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

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

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

...