2012-03-19 3 views
1

Я скомпилировал 2 файла VBScript .vbs, чтобы контролировать использование интеллектуальных котировок (также известных как фигурные кавычки) в Microsoft Word. Я экспериментирую с использованием VBScript для выполнения функций Microsoft Word.Управление параметрами слова Microsoft с помощью VBScript

Я хотел бы получить следующий результат: при открытии открытого документа Microsoft я хотел бы открыть один из файлов .vbs, чтобы сразу включить интеллектуальные кавычки и, наоборот, открыть другой файл .vbs, чтобы немедленно отключить интеллектуальные котировки.

К сожалению, при открытии документа Word Microsoft запуск этих сценариев путем двойного щелчка по соответствующему файлу .vbs кажется неэффективным. Однако, если я открываю (двойным щелчком) один из файлов .vbs, а слово Microsoft закрывается, а затем открывает слово Microsoft, параметры смарт-кавычек будут отображать сценарий в файле .vbs. Я воспроизвел сценарии из файлов .vbs ниже. В каждой из них есть строка нежелательного кода, которому предшествует апостроф - как я уже сказал, я экспериментировал. Как изменить сценарии для достижения вышеупомянутого результата? Любая помощь очень ценится. Stuartzz

Script (в .vbs файл) для включения смарт-цитаты от:

On Error Resume Next 
Set objWord = CreateObject("Word.Application") 
'objWord.Visible = True 
Set objOptions = objWord.Options 
objOptions.AutoFormatAsYouTypeReplaceQuotes = False 
objOptions.AutoFormatReplaceQuotes = False 
ObjWord.Quit 

Script (в .vbs файл) для включения смарт котировки на:

On Error Resume Next 
Set objWord = CreateObject("Word.Application") 
'objWord.Visible = True 
Set objOptions = objWord.Options 
objOptions.AutoFormatAsYouTypeReplaceQuotes = True 
objOptions.AutoFormatReplaceQuotes = True 
ObjWord.Quit 

VBScript версии 5.8 .7601.16978 .net framework версия v4.0.30319 Windows 7 Ultimate Service Pack 1 64-разрядная операционная система Microsoft Office Professional Plus 2010 Microsoft Word 14.0.5128.5000 (64-разрядная версия))

ответ

0

Использование CreateObject начнет новый экземпляр приложения Word. Это не повлияет на текущий текущий. Чтобы получить текущий экземпляр, вам необходимо использовать GetObject.

Таким образом, вместо этого:

Set objWord = CreateObject("Word.Application") 

Используйте это, чтобы захватить первый экземпляр Слова:

Set objWord = GetObject(, "Word.Application") 

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

+0

спасибо. Я ранее пробовал GetObject, но не использовал запятую. Ваш ответ вызывает диалоговое окно с «Сохранить», «Не сохранять» и «Отменить». Если я нажимаю клавишу эвакуации или нажимаю «Отмена», это нормально. Есть ли способ предотвратить появление диалогового окна или использовать сценарий, который имитирует нажатие клавиши перехода? В VBA эта проблема не существует. Я заинтересован в использовании VBScript, поэтому я могу поместить скрипт в макрос распознавания речи. – Stuartzz

+0

Действия Microsoft Word по умолчанию позволяют запрограммировать изменения изменений, когда документ закрыт либо преднамеренно, либо когда приложение завершает работу, что именно происходит, когда ваш скрипт достигает «objWord.Quit». Метод Quit принимает единственный параметр, который сообщает Word, как обращаться с этой ситуацией. Допустимые значения: 0, -1 и -2, что означает выход без сохранения изменений, выход из сохранения изменений и запрос на сохранение изменений соответственно. В зависимости от того, какой вам нужен, попробуйте что-то подобное. 'objWord.Quit 0' – Nilpo

+0

Это большое спасибо. Я полностью удалил эту строку из сценария, поэтому документ слова не закрывается. – Stuartzz

Смежные вопросы