blnUpUpAndAway.Text = "VBA! {bmp c:\dummies.bmp}"
Как видно из этого примера, вы должны заключить имя файла с изображением и путь к нему в фигурные скобки. Сначала вам необходимо указать формат файла –bmp для формата .bmp или wmf для формата .wmf и только затем указыват путь к файлу и имя файла.
После того как созданное вами окно Помощника отображено на экране, вам обязательно потребуется убрать его с экрана. Если объект окна Помощника является модельным (его свойству Mode присвоено значение msoModeModal, что имеет место по умолчанию), окно будет закрыто после щелчка на любой из его кнопок. Если же это не так, вам необходимо использовать в своей процедуре метод Close для закрытия окна в результате наиболее вероятных действий со стороны пользователя - щелчка на кнопке ОК или на кнопке Отмена.
Работа с элементами управления окна
Точно так же как и в обычных формах VBA, элементы управления в окне Помощника предоставляют пользователю возможность взаимодействия с программой. Окно Помощника может содержать элементы управления трех типов: флажки, надписи (могут выступать в качестве кнопок) и кнопки (это кнопки, которые располагаются в нижней части окна Помощника).
Каждое окно Помощника содержит пять надписей и пять флажков. Однако, до тех пор пока вы не укажете текст для определенной надписи или флажка, соответствующий элемент управления просто не отображается в окне. Для изменения значения свойства Text надписи или флажка вам следует обратиться к нему по его номеру в соответствующей коллекции объектов, как показано ниже:
With blnUpUpAndAway
.Labels(2) = _
"Не забудьте приобрести молоко по пути домой."
.Checkboxes(3).Text = "Я уже приобрел молоко."
End With
Надписи могут действовать в роли кнопок, реагируя на щелчки кнопкой мыши, но только в том случае, если вы присвоите свойству BalloonType объекта окна Помощника значение msoBalloonTypeButtons. Другие значения этого свойства позволяют представлять надписи в виде нумерованных или маркированных списков (см. табл. 14.2).
Вы указываете количество кнопок и их тип, присваивая свойству Button объекта окна
Помощника значение, равное одной из констант типа msoButtonSetType. Например, если вы хотите, чтобы окно Помощника содержало три кнопки: Abort (Прервать), Retry
(Повтор) или Ignore (Игнорировать), ваш код должен иметь следующий вид: blnUpUpAndAway.Button = msoButtonSetAbortRetryIgnore
Программисту просто необходим способ определения того, на какой кнопке щелкнул пользователь или какой флажок он установил. Вот как это делается: для определения того, на какой именно кнопке щелкнул пользователь, используется значение, возвращаемое методом
Show: оно предоставляет вам число, представляющее кнопку. Вы можете присвоить это значение переменной или использовать его напрямую, как показано в следующих примерах: intButton = blnUpUpAndAway.Show
Select Case blnUpUpAndAway.Show
Case msoBalloonButtonOK
(код, выполняемый после щелчка на кнопке ОК)
Case msoBalloonButtonCancel
(код, выполняемый после щелчка на кнопке Cancel )
Case 2
(код, выполняемый после щелчка на кнопке со другой надписью]
End Select
Как видно из двух первых инструкций Case, библиотека объектов Office содержит именованные константы, которые соответствуют значениям каждого типа "обычных" кнопок (т. е. кнопок, которые отображаются в нижней части окна Помощника). Вы можете использовать эти константы для определения того, на какой именно из кнопок щелкнул пользователь.
Для определения щелчка на кнопке просто используйте номер подписи к кнопке, как показано на примере третьей инструкции Case.
Для считывания сведений о текущем состоянии флажков в окне Помощника используйте свойство Checked каждого из них после закрытия окна пользователем. В самом простейшем случае вы можете использовать последовательность операторов If ... Then, по одному оператору для каждого флажка, как показано ниже:
With blnUpUpAway
If .Checkboxes(1).Checked Then
(код, выполняемы в том случае, если флажок 1 установлен )
Else
(код, выполняемы в том случае, если флажок не 1 установлен)
End If If .Checkboxes(2).Checked Then
(код, выполняемы в том случае, если флажок 2 установлен )
Else
(код, выполняемы в том случае, если флажок 2 не установлен )
End If
End With
Вы можете использовать свойство Callback объекта Balloon для определения процедуры, которая будет обрабатывать щелчки на кнопках. Этот прием оказывается особенно полезным при использовании немодальных объектов balloon, которые остаются на экране до тех пор, пока пользователь не щелкнет на кнопке.
Читать дальше