Шаг 82.
VBA в MSExcel. Элементы управления и пользовательская форма. Инициализация и отображение диалогового окна

    На этом шаге мы рассмотрим особенности выполнения указанных действий.

    Инициализировать и отобразить диалоговое окно на экране очень просто. Инициализация производится при помощи процедуры обработки события Initilize формы UserForm. Отображение диалогового окна на экране осуществляется методом Show. Инструкцию с методом Show обычно помещают в процедуру, которая связана с командой пользовательского меню, кнопкой панели инструментов или элементом управления, как правило кнопкой диалогового окна.

    Простой инициализации или обычного отображения диалогового окна часто бывает недостаточно, т.к. это приводит к появлению на экране функционально ненастроенного диалогового окна. Такое диалоговое окно можно сравнить с каркасом дома. В таком доме жить неприятно и в него совсем не хочется въезжать. Для того чтобы жить в доме было приятно и удобно, прежде чем в него вселяться, надо сделать много отделочных работ. Также и при инициализации диалогового окна необходимо предусмотреть огромное количество на первый взгляд мелочей, но без которых работать с диалоговым окном неудобно. В частности, при отображении диалогового окна на экране необходимо установить значения полей, применяемые по умолчанию, задать функции кнопок, назначить им комбинации клавиш, связать с элементами управления всплывающие подсказки, вывести в списках первоначально выводимые элементы списков, задать первоначальную установку флажков, переключателей, вывести в элементы управления формы требуемые рисунки и т.д.

    Приведем пример процедуры инициализации диалогового окна (рисунок 1), в котором рассчитываются размеры периодических выплат при постоянной процентной ставке.


Рис.1. Внешний вид диалогового окна

Private Sub UserForm_Initialize()
  ' Процедура инициализации и активизации диалогового окна
  ' Первоначальный выбор переключателя Гистограмма
  OptionButton1.Value = True
  ' Назначение клавише <Enter> функции кнопки Вычислить
  With CommandButton1
    .Default = True
    .ControlTipText = "Вычисление процентных ставок" & Chr(13) & _
       "составление отчета на рабочем листе"
  End With
  CommandButton2.ControlTipText = "Кнопка отмены"

  On Error GoTo Сообщение0
  With Image1
    ' Установка такого же цвета границы элемента управления Рисунок,
    ' как и его фон
    .BorderColor = .BackColor
    ' Загрузка рисунка, соответствующего переключателю Гистограмма
    .Picture = LoadPicture("VBA3_F1.BMP")
  End With

  UserForm1.Show
  Exit Sub

  ' В случае отсутствия файла с рисунком отображается сообщение

Сообщение0:
  If Err.Number Then
    MsgBox "Нет графического файла VBA3_F1.BMP." & Chr(13) & _
    "Работаем без картинки", vbCritical, "Выплаты"
  End If
  Resume Next
End Sub
Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим закрытие диалогового окна.




Предыдущий шаг Содержание Следующий шаг