
- •Предисловие
- •1. Основы программирования в Microsoft Office
- •1.2. Что такое язык VBA
- •1.3. Макрорекордер: быстрое создание макросов
- •1.4. Четыре способа запуска макроса
- •2.1. Общие сведения
- •2.3.1. Как открыть редактор кода и как он устроен
- •2.3.2. Список объектов и список событий
- •2.3.3. Закладки и разделение окна редактирования
- •2.3.4. Как редактор помогает писать код
- •2.4. Работа со справкой
- •3. Синтаксис и программные конструкции VBA
- •3.1. Основы синтаксиса
- •3.2. Операторы
- •3.3. Переменные и типы данных
- •3.4. Константы
- •3.5. Операторы условного и безусловного перехода
- •3.5.2. Оператор Select Case
- •3.5.3. Оператор GoTo
- •3.6. Работа с циклами
- •3.7. Массивы
- •3.8. Процедуры и функции
- •3.8.1. Виды процедур
- •3.8.2. Область видимости процедур
- •3.8.3. Объявление процедур
- •3.8.4. Передача параметров
- •3.8.5. Вызов и завершение работы процедур
- •3.9. Встроенные функции языка VBA
- •3.9.1. Что такое встроенные функции
- •3.9.2. Функции преобразования и проверки типов данных
- •3.9.3. Строковые функции
- •3.9.4. Функции для работы с числовыми значениями
- •3.9.5. Функции для работы с датой и временем
- •3.9.6. Функции для форматирования данных
- •3.9.7. Функции для организации взаимодействия с пользователем
- •3.9.9. Функции для работы с массивами
- •3.9.10. Функции для работы с файловой системой
- •3.9.11. Другие функции VBA
- •4. Работа с объектами и объектные модели
- •4.1. Что такое классы и объекты
- •4.2. Создание и удаление объектов
- •4.3. Методы объекта
- •4.4. Свойства объекта
- •4.6. Просмотр объектов
- •4.7. Объектные модели
- •5. Формы, элементы управления и события
- •5.1. Для чего нужны формы
- •5.2. Создание форм и самые важные свойства и методы форм
- •5.3. Элементы управления
- •5.3.1. Что такое элемент управления
- •5.3.2. Элемент управления Label
- •5.3.3. Элемент управления TextBox
- •5.3.4. Элемент управления ComboBox
- •5.3.5. Элемент управления ListBox
- •5.3.7. Элементы управления OptionButton и Frame
- •5.3.8. Элемент управления CommandButton
- •5.3.9. Элементы управления ScrollBar и SpinButton
- •5.3.10. Элементы управления TabStrip и MultiPage
- •5.3.11. Элемент управления Image
- •5.3.12. Применение дополнительных элементов управления
- •6. Отладка и обработка ошибок в программе
- •6.1. Типы ошибок
- •6.2.1. Тестирование
- •6.2.2. Переход в режим паузы
- •6.2.3. Действия в режиме паузы
- •6.2.4. Окно Immediate
- •6.2.5. Окно Locals
- •6.2.6. Окно Watches
- •6.3. Перехват и обработка ошибок времени выполнения
- •7. Работа с помощником
- •8. Работа с панелями инструментов и меню
- •9.1. Зачем нужно работать с базами данных
- •9.2. Что такое ADO
- •9.3. Объект Connection и коллекция Errors
- •9.4. Подключение к таблице на листе Excel
- •9.5. Объект Recordset и коллекция Fields
- •9.5.1. Открытие Recordset
- •9.5.3. Перемещение по Recordset
- •9.5.4. Коллекция Fields и объекты Field
- •9.5.5. Сортировка и фильтрация данных
- •9.5.6. Изменение записей на источнике при помощи объекта Recordset
- •9.5.7. Прочие свойства и методы объекта Recordset
- •10. Программирование в Word
- •10.1. Зачем программировать в Word
- •10.3. Объект Application
- •10.3.1. Как работать с объектом Application
- •10.3.2. Свойства, методы и события объекта Application
- •10.4. Коллекция Documents и объекты Document
- •10.4.1. Как работать с коллекцией Documents
- •10.4.2. Свойства и методы коллекции Documents
- •10.4.3. Работа с объектом Document, его свойства и методы
- •10.5. Объекты Selection, Range и Bookmark
- •10.5.1. Работа с объектом Selection
- •10.5.2. Свойства и методы объекта Selection
- •10.5.3. Работа с объектом Range, его свойства и методы
- •10.5.4. Объект Bookmark
- •10.6. Другие объекты Word
- •10.6.1. Коллекция AddIns и объекты AddIn
- •10.6.2. Объект AutoCorrect
- •10.6.3. Коллекция Languages и объект Language
- •10.6.4. Объект Options
- •10.6.5. Объекты Find и Replacement
- •10.6.6. Объекты Font и ParagraphFormat
- •10.6.7. Объект PageSetup
- •10.6.8. Объекты Table, Column, Row и Cell
- •10.6.9. Объект System
- •10.6.10. Коллекция Tasks и объект Task
- •10.6.11. Коллекция Windows и объект Window
- •11. Программирование в Excel
- •11.1. Зачем программировать в Excel
- •11.2. Объект Application
- •11.3. Свойства и методы объекта Application
- •11.4. Коллекция Workbooks и объект Workbook, их свойства и методы
- •11.5. Коллекция Sheets и объект Worksheet, их свойства и методы
- •11.6. Объект Range, его свойства и методы
- •11.7. Коллекция QueryTables и объект QueryTable
- •11.9. Работа с диаграммами (объект Chart)
- •11.10. Другие объекты Excel
- •12. Программирование в Access
- •12.1. отличительные особенности создания приложений в Access
- •12.2. Основные этапы создания приложений в Access
- •12.4. Макрокоманды и объект DoCmd
- •12.5. Работа с формами Access из VBA (объект Form)
- •12.6. Свойства, методы и события форм
- •12.7. Работа с отчетами (объект Report)
- •13. Программирование в Outlook
- •13.1. Зачем программировать в Outlook
- •13.2. Некоторые особенности программирования в Outlook
- •13.4. Объект Namespace
- •13.5. Коллекция Folders и объект MAPIFolder
- •13.7. Другие объекты Outlook
- •14. Программирование в PowerPoint
- •15. Программирование в Project
- •15.1. Основы программирования в Project Professional. Объект Application

ГЛАВА 7
Работа с помощником
Для того чтобы вывести пользователю какую-либо информацию, в Office необязательно применять возможности форм с элементами управления или вызывать функцию MsgBox(). В приложения Office встроен помощник — анимированное изображение скрепки, щенка или котенка, которое пользователи чаще всего отключают. Однако применение его может быть очень удобным, особенно учитывая немодальность этого окна (т. е. пользователи могут продолжать работать в то время, когда помощник выводит им какие-то подсказки). Для работы с помощником используются два объекта — Assistant и Balloon. Assistant — это сам помощник, Balloon — это окно рядом с ним, в которое выводятся ваши сообщения (рис. 7.1).
Пример работы с объектом Assistant из программы на VBA может выглядеть так:
Assistant.On = True
Assistant.Visible = True
Assistant.Animation = msoAnimationThinking
Рис. 7.1. Вам помогает Бобик (английский псевдоним — Rocky)
144 |
Глава 7 |
Первая команда включает помощника (на случай, если он отключен), вторая — делает его видимым, третья — заставляет его "думать" (т. е. вызывает подходящий мультик). Далее приведен перечень наиболее важных свойств объекта Assistant.
Animation — это свойство позволяет запустить "мультик" для нашего героя (думать, искать, отправлять почту, что-то делать и т. п.). По окончании мультика он останется в положении, определяемом этим свойством. Если какое-то действие для вашего героя не определено, ошибки не возникнет — оно будет просто проигнорировано.
FeatureTips — это свойство переводит помощника в автоматический режим работы, заставляя его подсказывать вам более эффективные (по мнению разработчиков Office) пути выполнения различных операций.
FileName — при помощи этого свойства вы можете выбрать помощника. По умолчанию выбирается щенок Rocky. Можно воспользоваться и другими помощниками — любым из семи, которые находятся в стандартной поставке Office, или сотнями других, которых можно найти в Интернете (но тогда их нужно будет предварительно скопировать в каталог к другим файлам помощников с расширением acs). Например, чтобы вызвать вместо щенка котенка, можно использовать такой код:
Assistant.FileName = "Offcat.acs"
GuessHelp — при включении этого свойства помощник начинает выводить список тех разделов справки, которые, по его мнению, могут пригодиться пользователю.
KeyboardShortcutTips — помощник будет выводить в автоматический режим информацию о клавиатурных комбинациях, которые могут быть использованы для выполнения различных действий.
Left — помощник "перепрыгнет" налево и будет располагаться в левой части экрана приложения.
MoveWhenInTheWay — помощник автоматически будет уходить в сторону, если пользователь что-то делает на том месте, где находится помощник.
NewBalloon — это свойство автоматически возвращает новый объект Balloon (т. е. окно "пузыря", в котором будет выводиться ваш текст для пользователя). Например, для создания "пузыря" можно использовать такой код:
Dim Bal1
Set Bal1 = Assistant.NewBalloon
Чтобы Balloon был виден, необходимо вызвать его метод Show():
Bal1.Show
Работа с помощником |
145 |
Собственно говоря, "пузырь" можно вообще не создавать, а воспользоваться конструкцией вида:
Assistant.NewBalloon.Heading = "У этого сотрудника фамилии не будет?"
On — это свойство, как видно из нашего первого примера, включает помощника, если он отключен, или отключает, если в нем отпала необходимость.
SearchWhenProgramming — определяет, будет ли помощник помогать во время работы редактора VBA.
Sounds — включает или отключает звуковые эффекты.
TipOfDay — помощник будет выдавать какой-нибудь совет из специального набора при каждом запуске приложения Office.
Top — задает расстояние от верхнего края экрана до местонахождения помощника.
Visible — позволяет показать или спрятать помощника.
При помощи методов помощника вы можете вызвать стандартное окно для поиска по справке (Help()), запустить мастер получения ответов (StartWizard()), переместить помощника в другое место (Move()) и т. п.
После того, как вы создали и настроили помощника, следующий этап — работа с объектом Balloon, т. е. с пузырем. Как он создается, мы уже видели. Теперь рассмотрим его основные свойства.
BalloonType — позволяет настроить тип пузыря, в качестве значения может использоваться одна из трех констант. При помощи этого свойства определяется, будет ли пузырь содержать набор кнопок, нумерованный или маркированный список.
Button — позволяет выбрать набор кнопок в нижней части пузыря.
Callback — это свойство позволяет привязать к пузырю процедуру, которую пользователь сможет запустить из него.
Checkboxes — позволяет разместить в пузыре переключатели.
Heading — заголовок пузыря, в котором можно не только поместить текст, но и вставить изображение или выбрать цвет шрифта.
Icon — свойство, задающее иконку в верхнем левом углу пузыря. Labels — позволяет привязать метки к кнопкам или элементам списков.
Mode — задает режим работы баллона. В вашем распоряжении следующие значения:
•msoModeModal (по умолчанию) — пользователю придется закрыть пу-
зырь, прежде чем он сможет продолжить работу с приложением;
146 |
Глава 7 |
•msoModeModeless — пользователь может продолжить работу в приложе-
нии, не реагируя на пузырь;
•msoModeAutoDown — пользователь должен будет щелкнуть мышью по
любому месту в приложении, чтобы пузырь пропал.
Text — свойство, определяющее, что будет выводить пользователю пузырь. Помимо обычного текста, можно также выводить изображения и менять цвет шрифта.
Если при помощи свойства Button мы определили специальный набор кнопок, то, скорее всего, нам потребуется получить информацию о том, на какую кнопку нажал пользователь. Делается это очень просто:
intButton = Bal1.Show()
или напрямую:
Select Case Bal1.Show()
...
Второй метод объекта Balloon — метод Close(). Он просто закрывает наш пузырь с текстом.
Еще раз скажем, что ограничиваться только теми помощниками, которые идут в стандартной поставке Microsoft Office, совершенно необязательно. Вы можете установить на радость себе и окружающим множество альтернативных помощников, которые в большом количестве водятся в Интернете. Например, несколько сотен помощников можно бесплатно скачать с сайта www.agentry.net.