Создание и использование диалоговых окон

Диалоговые листы – тип листа Excel, используемый для организации пользовательских диалоговых окон. Добавить диалоговый лист можно, щёлкнув правой кнопкой мыши на названии какого-либо листа, а затем Добавить -> Окно диалога Excel 5.0.

Чтобы увидеть, как будет выглядеть Ваше окно при запуске, необходимо щёлкнуть кнопку Отобразить окно панели Формы или после щелчка правой кнопки в выпадающем меню выбрать опцию Отобразить окно. Вы можете в диалоговом листе изменить размер создаваемого диалогового окна, его заголовок, можете добавлять и удалять в нём кнопки и другие элементы управления, которые можно добавлять в диалоговое окно при помощи панели Формы так же, как это делалось в рабочем листе.

Задание 3. Добавьте диалоговый лист, создайте диалоговое окно, а в нем два флажка: один с заголовком "Курсив", другой – с заголовком "Полужирный".

 

Чтобы вызвать и отобразить диалоговое окно, созданное в диалоговом листе Диалог1, используется метод Show, а чтобы скрыть его - метод Hide. Например,

Sheets("Диалог1").Show или Sheets("Диалог1"”).Hide.

Создайте макрос, запускающий ваше диалоговое окно:

Sub Запуск()

Sheets("Диалог1").Show

End Sub

На данный момент Ваше окно никак не может влиять на состояние рабочих листов рабочей книги, так как никакой макрос ещё не связан с нажатием кнопки ОК диалогового окна. Чтобы установить эту связь, выделите в диалоговом листе кнопку ОК, а затем щёлкните на кнопке Текст программы панели Формы. Активным становится модульный лист с уже созданной для вас процедурной заготовкой:

Sub Кнопка2_Щелкнуть()

End Sub

Конструкция Кнопка2_Щелкнуть() говорит о том, что процедура Sub() будет обрабатывать событие Click (Щелкнуть) для конкретного объекта Кнопка2, принадлежащему объекту типу Button (Кнопка). В общем случае в VBA заголовок процедуры обработки события имеет вид:

Sub <имя объекта>_<имя события>

Внутрь процедуры Кнопка2_Щелкнуть() введите код, изменяющий формат выделенных ячеек рабочего листа в зависимости от состояния флажков вашего диалогового окна:

If Sheets("Диалог1").CheckBoxes("Флажок 5").Value = xlOn Then

Selection.Font.Bold = True

Else

Selection.Font.Bold = False

End If

If Sheets("Диалог1").CheckBoxes("Флажок 4").Value = xlOn Then

Selection.Font.Italic = True

Else

Selection.Font.Italic = False

End If

Объект CheckBoxes - это коллекция объектов элементов управления типа Флажок, которая содержится в родительском объекте. В нашем примере родительский объект - это Sheets("Диалог1") - конкретный лист диалога. Конструкция CheckBoxes(<имя элемента управления>) - это указатель на конкретный элемент этой коллекции, имеющий уникальное имя.

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

 

 

Если все макросы и модули работоспособны, на любом из рабочих листов Excel, проверьте работоспособность Вашего примера по изменению формата ячеек любой выделенной области, при вызове макроса Запуск.