Создание и использование диалоговых окон
Диалоговые листы – тип листа 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, проверьте работоспособность Вашего примера по изменению формата ячеек любой выделенной области, при вызове макроса Запуск.