VBA для тех кто любит думать


VBA и Office XP - часть 137


Все константы перечислены в справке VBA по слову "DefaultFilePath" (рис.8.2), а об их значении можно легко догадаться, переведя название константы с английского языка.

 

08_02.bmp

Рис. 8.2. Пути и папки. Справка.

 

*       *       *

Если у одного из элементов формы установить свойство Cancel в True, то нажатие кнопки Esc будет эквивалентно клику мыши на этом элементе.

 

*       *       *

Если вы пишете инсталлятор для ваших программ, который помещает шаблоны с макросами в папку автозагружаемых файлов Word, то совсем необязательно требовать перезагрузки редактора, чтобы макросы из помещенного в эту папку шаблона стали доступны. 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[14]

 

Иными словами, программа пытается подключить шаблон до тех пор, пока это ей не удастся, не выдвая при этом никаких сообщений.




Начало  Назад  Вперед