Рейтинговые книги
Читем онлайн Интернет-журнал 'Домашняя лаборатория', 2007 №7 - Глуховский

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 285 286 287 288 289 290 291 292 293 ... 511

Рис. 7.25. Подписывание файла Word.

Используйте цифровую подпись, если вы желаете гарантировать неизменность передаваемых вами другим пользователям файлов, но не стремитесь запретить их им редактировать.

ПОЛЕЗНЫЕ СОВЕТЫ

В этой главе вы найдете набор советов по программированию на VBA, которые могут помочь вам в решении тех или иных задач. Кроме того, в конце главы есть несколько заметок на различные темы, связанные с программированием на Visual Basic for Applications.

* * *

Настройки программы можно сохранять в системном реестре Windows. Для этого служит команда "SaveSetting", с помощью которой можно поместить в системный реестр строку или число. Она имеет формат "SaveSetting "Имя приложения","Имя раздела", "Ключ", "Значение"". Имя приложения, имя раздела и ключ — указатели места, в котором сохраняется значение. Получить значения из реестра можно командой "GetSetting" с синтаксисом "GetSetting "Имя приложения","Имя раздела", "Ключ", "То значение, которое следует вернуть, если такого ключа, как указанный в предыдущем параметре, в реестре нет"", а удалить — командой "DeleteSetting "Имя приложения","Имя раздела", "Ключ"". Например:

SaveSetting "Макросы", "Макрос1", "Имя папки", "C: MyPapka"

papka = GetSetting "Макросы", "Макрос1", "Имя папки", "C: Docs"

* * *

Записать список всех установленных в системе шрифтов в массив можно таким способом:

ReDim shrifti(FontNames.Count) As String

For r = 1 To FontNames.Count shrifti(r) = FontNames(r)

Next r

WordBasic.SortArray shrifti()

(В массив "shrifti()" размером в количество шрифтов в системе помещается список имен всех установленных в системе шрифтов. Команда "WordBasic.SortArray" сортирует его по алфавиту.)

* * *

Условие "If Selection. Type = wdSelectionIP Then…" выполнится, только если в документе не выделен фрагмент текста.

* * *

Если вы решили хранить какую-нибудь информацию, нужную при работе программы, в отдельном файле, не стоит экспериментировать с командами чтения и открытия файла типа "open", "write" и др. Просто открывайте файл в Word как текстовый с помощью команды "Documents. Open…" и пишите в него обычными средствами записи текста: "Selection.Text = "Мой текст"".

* * *

Посмотрите повнимательнее свойства, объекты и методы таких объектов, как "Application" и "System" (для этого достаточно набрать название объекта и поставить после него точку, — список возможных продолжений отобразится сам — рис. 8.1). Среди них можно найти немало весьма интересных и полезных, вроде средства задания и получения значений ширины и высоты окна Word, информации о языке данной версии Office, метод чтения данных из произвольного места реестра и многое другое.

Рис. 8.1. Свойства и методы объекта System — склад весьма интересных вещей….

Вот некоторые полезные свойства объекта Application.

Application.CapsLock — показывает, горит ли на клавиатуре индикатор CapsLock.

Application.NumLock — показывает, горит ли на клавиатуре индикатор NumLock.

Application.Caption — сообщает заголовок окон запущенной программы (для Word, например, это — "Microsoft Word"). Этот заголовок можно поменять: так, команда "Application.Caption = "Мой Word"" заменит традиционный заголовок окна Word'а на тот текст, что указан в скобках.

Application.DisplaystatusBar — сообщает, отображается ли статусная строка. С помощью этого свойства можно и убрать ее, и снова восстановить — командами Application.DisplayStatusBar=False и Application.DisplaystatusBar=True соответственно.

Application.EnableCancelKey — в случае установки в True запущенный макрос нельзя будет прервать нажатием Ctrl+Break.

Application.Height и Application.Widht — возвращают соответственно высоту и ширину окна приложения. С помощью этих свойств можно и задать размеры окна приложения, скажем, расширить окно Word до нужной ширины.

Application.РаthSeparator — возвращает символ, служащий разделителем имен папок в полном пути к файлу. В MS-DOS и Windows это "", а в операционных системах, применяемых на компьютерах Macintosh — ":". Использование данного свойства может пригодиться при разработке мультиплатформенных программ — работающих как в Microsoft Office for Windows, так и в Microsoft Office for Macintosh.

Application.Version — сообщает версию приложения. Например, такая команда, будучи вызванной в Microsoft Word 97, вернет "8.0" или "8.0а", в Microsoft Word 2000 — "9.0", в Microsoft Word ХР — "10.0".

А вот некоторые интересные методы этого объекта:

a=Application.CleanString (строковая переменная) — очищает строку, находящуюся в строковой переменной, от неотображаемых специальных символов;

Application.OnTime — позволяет запустить тот или иной макрос в назначенное время или спустя некоторый срок после выполнения данной команды. О параметрах использования рассказано в Справочной системе VBA, там же приведены и примеры.

* * *

С помощью фрагмента кода

Set MyData = New DataObject

MyData.SetText "Мой текст"

MyData.PutlnClipboard

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

* * *

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

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

* * *

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

* * *

Если вы пишете инсталлятор для ваших программ, который помещает шаблоны с макросами в папку автозагружаемых файлов Word, то совсем необязательно требовать перезагрузки редактора, чтобы макросы из помещенного в эту папку шаблона стали доступны. VBA позволяет активизировать такие шаблоны без перезагрузки Microsoft Word — для этого существует специальная команда Addins.Add("полное имя шаблона, включая путь к нему и расширение").Installed = True

Эта команда эквивалентна ручному подключению шаблона с макросами через меню Word "Сервис — Шаблоны и надстройки". Однако если она будет выполнена сразу же после программного копирования шаблона в папку автозагружаемых файлов, то может возникнуть ошибка вследствие того, что при таком копировании Word должен зарегистрировать этот шаблон как доступный для подключения (после регистрации он появится в диалоговом окне "Сервис-Шаблоны и надстройки", но не будет отмечен как загруженный — загрузку как раз и проводит указанная команда). На это уходит пара секунд, и если в этот момент вызвать команду подключения шаблона, то Word может ответить программе, что такого шаблона в папке автозагрузки нет, что вызовет ошибку.

Предотвратить подобную ситуацию можно, например, с помощью следующей конструкции, — разместите ее после команды копирования шаблона "FileCopy":

а="Имя шаблона в папке автозагрузки с полным указанием пути"

On Error Resume Next

Do

If Addins(a).Installed Then Exit Do

Addins(a).Installed = True

Loop[238]

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

1 ... 285 286 287 288 289 290 291 292 293 ... 511
На этой странице вы можете бесплатно читать книгу Интернет-журнал 'Домашняя лаборатория', 2007 №7 - Глуховский бесплатно.
Похожие на Интернет-журнал 'Домашняя лаборатория', 2007 №7 - Глуховский книги

Оставить комментарий