Тайны и секреты компьютера | страница 61
· С помощью фрагмента кода
Set MyData = New DataObject
MyData.SetText "Мой текст"
MyData.PutInClipboard
можно поместить текст в буфер обмена, не используя активный документ.
· С помощью команды "Options.DefaultFilePath("константа названия папки")" можно получить пути и имена папок, перечисленных в диалоговом окне Word «Сервис» — «Параметры» — «Расположение». Все константы перечислены в справке VBA по слову «DefaultFilePath», а об их значении можно легко догадаться, переведя название константы с английского.
· Если у одного из элементов формы установить свойство Cancel в True, то нажатие кнопки Esc будет эквивалентно клику мыши на этом элементе.
· Если вы пишете инсталлятор для ваших программ, который помещает шаблоны с макросами в папку автозагружаемых файлов Word,[12] то совсем необязательно требовать перезагрузки редактора, чтобы макросы из помещенного в эту папку шаблона стали доступны. VBA позволяет активизировать такие шаблоны без перезагрузки Microsoft Word — для этого существует специальная команда
AddIns.Add("полное имя шаблона, включая путь к нему и расширение"). Installed = True
Эта команда эквивалентна ручному подключению шаблона с макросами через меню Word "Сервис — Шаблоны и надстройки". Однако если она будет выполнена сразу же после программного копирования шаблона в папку автозагружаемых файлов, то может возникнуть ошибка вследствие того, что при таком копировании Word должен зарегистрировать этот шаблон как доступный для подключения (после регистрации он появится в диалоговом окне "Сервис-Шаблоны и надстройки", но не будет отмечен как загруженный). На это уходит пара секунд, и если в этот момент вызвать команду подключения шаблона, то Word может ответить программе, что такого шаблона в папке автозагрузки нет, что вызовет ошибку.
Предотвратить подобную ситуацию можно, например, с помощью следующей конструкции, — разместите ее после команды копирования шаблона "FileCopy":
a="Имя шаблона в папке автозагрузки с полным указанием пути"
On Error Resume Next
Do
If AddIns(a). Installed Then Exit Do
AddIns(a). Installed = True
Loop[13]
При использовании команды подключения шаблона он может находиться и не в папке автозагружаемых файлов, но все же надежнее использовать именно папку автозагрузки.
· Для удаления шаблона без выгрузки Word можно использовать такой же код:
a="Имя шаблона в папке автозагрузки с указанием пути"
On Error Resume Next
Do
If Not AddIns(a). Installed Then Exit Do