- •9.1. Объектная модель ms Word
- •9.2. Работа с объектными переменными
- •9.3. Объект Application - приложение
- •9.4. Методы объекта Application
- •9.4.1. BuildKeyCode, KeyString - горячие клавиши
- •9.4.2. ChangeFileOpenDirectorу - путь для работы с файлами
- •9.4.3. CleanString - очистка строк
- •9.4.4. Keyboard - программное переключение раскладки
- •9.4.5. ListCommands - справка по горячим клавишам
- •9.4.6. NewWindow - копия окна активного документа
- •9.4.7. OnTime - запуск макросов по расписанию
- •9.4.8. PrintOut - распечатка документов
- •9.4.9. Quit - выход из приложения
- •9.4.11. ScreenRefresh - принудительное обновление экрана
- •9.5. Свойства объекта Application
- •9.5.1. ActiveDocument и другие - активный документ
- •9.5.2. CapsLock - текущее состояние Caps Lock
- •9.5.3. Caption - заголовок окна ms Word
- •9.5.4. CustomizationContext - область сохранения настроек
- •9.5.5. Dialogs - диалоговые окна ms Word
- •9.5.6. DisplayAlerts - управление выводом сообщений
- •9.5.7. EnableCancelKey - запрещаем остановку программы
- •9.5.8. IsObjectValid - проверка объектных переменных
- •9.5.9. KeyBindings - назначаем клавиатурные сокращения
- •9.5.10. NumLock - состояние цифровой клавиатуры
- •9.5.11. RecentFiles - недавно открытые файлы
- •9.5.12. ScreenUpdating - запрет обновления экрана
- •9.5.13. StatusBar - вывод информации в строку состояния
- •9.5.14. System - системная информация
- •9.5.15. Tasks - работа с запущенными приложениями
- •9.5.16. Visible - скрытие окна ms Word
- •9.5.17. Windows - работа с окнами
- •9.6. События объекта Application
9.5.6. DisplayAlerts - управление выводом сообщений
DisplayAlerts - позволяет управлять выводом диалоговых окон, сообщений об ошибках и т.д. при работе в Microsoft Word. Чтобы запретить вывод всех сообщений, используйте код, приведенный в листинге 9.26.
Application.DisplayAlerts = wdAlertsNone
Листинг 9.26. Запрет вывода всех сообщений (html, txt)
Константа wdAlertsNone запрещает вывод сообщений. Аналогично, константа wdAlertsAll разрешает вывод всех сообщений, аwdAlertsMessageBox разрешает лишь вывод окон сообщений, сообщения об ошибках не выводятся.
9.5.7. EnableCancelKey - запрещаем остановку программы
09-05-Cancel.docm - пример к п. 9.5.7
EnableCancelKey - позволяет разрешать и запрещать пользователю остановку программы по нажатию сочетания клавиш Ctrl + Break. Это может быть полезно при выполнении участков кода, которые нельзя прерывать.
Для того чтобы запретить прерывание работы программы нужно присвоить этому свойству значение wdCancelDisabled, для разрешения - wdCancelInterrupt.
Пример использования этого оператора вы можете найти в листинге 9.27.
Dim num_b As Double
MsgBox ("Вы не сможете прервать выполнение " + _
"следующего кода")
Application.EnableCancelKey = wdCancelDisabled
For i = 1 To 1000000
For j = 100 To 1 Step -1
num_b = num_b * i / j
Next j
Next i
Application.EnableCancelKey = wdCancelInterrupt
MsgBox ("А теперь Ctrl + Pause Break " + _
"снова работает")
Листинг 9.27. Запрет прерывания выполнения программы (html, txt)
9.5.8. IsObjectValid - проверка объектных переменных
IsObjectValid - позволяет проверить объектную переменную. Если объект, на которую она ссылается, существует - проверка возвратит True, если нет - False. Это свойство полезно использовать для проверки объектов, которые могут быть удалены пользователем. Если объект существует, можно произвести с ним какие-либо действия. Если нет - сообщить причину, по которой действия невозможны.
9.5.9. KeyBindings - назначаем клавиатурные сокращения
KeyBindings - возвращает коллекцию KeyBindings, которая содержит информацию о клавиатурных привязках. Это очень полезная коллекция - с ее помощью можно, например, назначить клавиатурную комбинацию для запуска какого-нибудь макроса. листинг 9.28. позволяет назначить комбинацию клавиш Alt + Shift + T макросу TextEdit, хранящемуся в модуле MyMacro шаблонаNormal.Dotm
Application.CustomizationContext = NormalTemplate
Application.KeyBindings.Add _
wdKeyCategoryMacro, _
"Normal.MyMacro.TextEdit", _
BuildKeyCode(wdKeyAlt, wdKeyShift, wdKeyT)
Листинг 9.28. Программное назначение комбинации клавиш макросу (html, txt)
Сначала с помощью свойства CustomizationContext мы устанавливаем место, где будет сохранена привязка. Это - шаблонNormal.Dotm. Далее мы используем метод Add коллекции KeyBindings. Мы передаем этому методу три параметра. Первый (wdKeyCategoryMacro ) указывает методу на то, что мы назначаем клавиатурную комбинацию макросу. Второй -"Normal.MyMacro.TextEdit " - указывает путь к макросу, запуск которого мы назначаем клавиатурному сокращению. Третий параметр содержит вызов метода BuildKeyCode - напомню, что он генерирует код сочетания клавиш на основе переданных ему параметров. В нашем случае он сгенерирует код для сочетания клавиш Alt + Shift + T - мы передали методу параметры wdKeyAlt,wdKeyShift и wdKeyT.
Если все сделано верно - в частности, макрос, запуск которого мы автоматизируем, существует - после выполнения такого кода нажатие выбранного сочетания клавиш в любом активном документе приведет к запуску этого макроса.
