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