Управление параметрами Microsoft Word с помощью VBScript - PullRequest
1 голос
/ 19 марта 2012

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

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

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

Скрипт (в файле .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  

Скрипт (в файле .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 профессиональный плюс 2010 Microsoft Word 14.0.5128.5000 (64-разрядная версия)

1 Ответ

0 голосов
/ 20 марта 2012

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

Итак, вместо этого:

Set objWord = CreateObject("Word.Application")

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

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

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

...