Шрифт:
Предотвратить подобную ситуацию можно, например, с помощью следующей конструкции, — разместите ее после команды копирования шаблона "FileCopy":
а="Имя шаблона в папке автозагрузки с полным указанием пути"
On Error Resume Next
Do
If Addins(a).Installed Then Exit Do
Addins(a).Installed = True
Loop[238]
Иными словами, программа пытается подключить шаблон до тех пор, пока это ей не удастся, не выдавая при этом никаких сообщений.
При использовании команды подключения шаблона он может находиться и не в папке автозагружаемых файлов, но все же надежнее использовать именно папку автозагрузки.
* * *
Для удаления шаблона без выгрузки Word можно использовать такой же код:
а="Имя шаблона в папке автозагрузки с указанием пути"
On Error Resume Next
Do
If Not Addins(a).Installed Then Exit Do
Addins(a).Installed = False
Loop
Addins (a).Delete
Kill (a)
Команда "Kill" выполняет удаление файла.
* * *
Команда "On Error Resume Next", встречающаяся в обоих вышеприведенных фрагментах кода — это обработчик ошибок. В случае возникновения ошибки в коде после него (скажем, связанной с обращением к несуществующему объекту) он продолжит выполнение программы с команды, следующей за вызвавшей ошибку. Обработчик ошибок может также иметь вид "On Error GoTo метка", и тогда при ошибке в коде после него произойдет переход к указанной в обработчике метке и выполнение программы продолжится именно с нее.
* * *
Если вы, работая в Word 97, часто сохраняете документы в формате HTML, и вам мешает постоянно появляющийся диалог о выборе кодировки файла (рис. 8.3), то отключите его, установив в системном реестре строковый параметр "HKEY_LOCAL_MACHINE\Software\Microsoft\Shared Tools\ Text Converters\Export\HTML\Options\Show EncodingDialog" как "No" (рис. 8.4). Установить этот параметр реестра можно и программно с помощью команды "System.PrivateProfileString("", "HKEY_LOCAL_MACHINE\Software\Microsoft\Shared Tools\Text Converters\Export\HTML\Options", "ShowEncodingDialog") = "No""
Рис. 8.3. Надоевший диалог в Microsoft Word 97…
Рис. 8.4…убирается здесь…
* * *
Если Вы закрыли исходный код Вашей программы на VBA от просмотра паролем, а потом благополучно его забыли — не огорчайтесь: в Интернете, по адресу www.passwords.ru есть программа AVPR, позволяющая восстановить забытый Вами пароль. Ее английская версия требует оплаты и регистрации, а русская бесплатная (есть на прилагаемом к книге компакт-диске). К сожалению, бесплатная версия работает только с файлами, созданными в Word и Excel из Microsoft Office 97.
* * *
Чтобы ускорить работу программы, работающей с текстом, поставьте в ее начале команду "Application.ScreenUpdating = False", а в ее конец — команду "Application.ScreenUpdating = True", если только в процессе работы программы не требуется визуальный контроль происходящих изменений. Эта команда позволяет системе не тратить время и силы на постоянное обновление экрана и отображение изменений. Для того, чтобы все же обновить экран после отключения обновления экрана, используйте команду "Application.ScreenRefresh".
* * *
Для получения от пользователя определенных данных, кроме создания форм, можно использовать встроенные диалоги VBA — диалоговое окно "Открытие файла", "Свойства документа" и др. Они вызываются командой Dialogs("Название диалога").Show (показывает диалог и выполняет соответствующие ему действия), Dialogs("Название диалога").Display (только показывает диалог и позволяет записать в переменные введенные изменения, но не выполняет никаких действий и ничего не изменяет: очень полезно для использования встроенных диалоговых окон в своих целях), Dialogs("Название диалога").Execute (ничего не отображает на экране, но применяет все те изменения, которые были сделаны ранее с помощью команды With Dialogs ("Название диалога")… End With). Для вывода списка возможных диалогов наберите "Dialogs(", и Вам будет выдан их список. К сожалению, описания конкретных диалогов нет в справке — придется просто попробовать отобразить каждый, хотя список возможных параметров каждого диалога в справке есть.
В Microsoft Excel набора встроенных диалогов нет, однако отобразить на экране окна открытия и сохранения файлов все же можно. Для этого служат команды "Application.GetOpenFilename" и "Application.GetSaveAsFilename". В результате выполнения команды "file = Application.GetOpenFilename" будет отображено окно открытия файла, а после выбора имя файла поместится в переменную (Здесь — "file"). Команда же "rez = Application.GetSaveAsFilename" отобразит окно сохранения файла, в переменную же (здесь — rez) будет помещено True — если сохранение успешно, и False — если нет. Обе команды допускают указание параметров (например, меняющих заголовки окна и других).
* * *
Помимо привычных кнопок и выпадающих меню в Word существует еще несколько типов элементов вызова команд и программ — поля ввода и выпадающие меню выбора. К примеру, элемент "Выпадающее меню с полем ввода" используется для указания масштаба просмотра документа на панели "Стандартная" или для ввода вопроса к справочной системе в OfficeXP (рис. 8.5).
Рис. 8.5. Выпадающее меню с полем ввода.