Пример 19.41.
Диалоговые окна пользователей
Диалоговые окна для ввода данных
Функция InputBox() обеспечивает формирование окна для вывода строки сообщения и ожидания ввода строки символов или нажатия кнопки. Возвращает содержание текстового блока:
InputВох(<строка_сообщение> [,<заголовок_окна>] [,<текст_по_умолчанию>] [,Хпоз][,Yпоз][, <файл-подсказки>, <контекст>])
где <текст_по_умолчанию> - строка символов, выводимая в текстовом блоке (может быть пустой);
Хпоз, Yпоз - позиция левого верхнего угла окна.
Пример 19.39. Формирование окна ввода
Текст программы | Комментарий |
Option Explicit | Обязательность объявления всех переменных в модуле перед их использованием |
Sub Msg_Inp() | Объявление процедуры |
Dim Response As String Dim Message As String Dim Default As String Dim Title As String Dim Help As String Dim Style As String Dim Ctxt As Integer | Объявление переменной |
Message="Введите Фамилию, Имя, Отчество студента " | Строка-сообщение |
Title=" Пример окна для ввода" | Заголовок окна |
Default=" Смирнов Игорь Александрович" | Текст по умолчанию |
Response=InputBox ( Message; Title; Default; 100; 100) | Присвоение переменной сим-вольного типа результата ввода |
End Sub | Конец процедуры |
Диалоговые окна пользователей обеспечивают ввод и редактирование данных файлов и таблиц. Для создания диалогового окна выполняется команда ВСТАВКА, Макрос с указанием типа вставляемого листа - Диалог. Экран содержит основу для построения диалогового окна пользователя, а также панель инструментов Формы (рис. 19.26) для размещения и настройки (форматирования) элементов окна.
Рис. 19.26. Панель инструментов Формы
Таблица .19.8. Состав панели инструментов Формы
В диалоговом окне могут размещаться элементы произвольного вида. которые создают наборы объектов. Доступ к конкретному элементу - по имени набора и имени или порядковому номеру элемента внутри набора.
Метки не могут редактироваться пользователем в процессе работы с диалоговым окном, но могут изменяться программным путем с помощью свойства Caption объекта Labels().
Пример 19.40.
Sheets("<имя_листа_диолога>''). Labels ("<имя_ объекта_метки>")
.Сарtion="строка текста"
Поле ввода является многострочным, содержит текст, который можно редактировать. Поле ввода входит в набор EditBoxes(), его можно редактировать и программным способом.
Sheets("<имя_листa_диaлoгa>").EditBoxes("<имя_ oкнa>").Text="cтрока текста"
Кроме того, этот тип элемента диалогового окна обладает следующими свойствами:
∙ MultyLine =True - в случае многострочности поля ввода;
∙ InputType - ограничение типа данных, вводимых в окно (xlFormula, xlInteger,xllNumber, xlReference, xlText).
Рамка группы обеспечивает объединение нескольких элементов диалогового окна. Этот тип окна изображается в первую очередь, а затем внутри него размещаются другие элементы. Для задания строки текста в верхней строке рамки программным образом используется его свойство - Caption.
Флажок обеспечивает аддитивный выбор, имеет свойство Value (принимает значение True, если выбран, или False - в противном случае). Подобные переключатели образуют набор CheckBoxes().
Кнопка переключателя обеспечивает альтернативный выбор из списка взаимоисключающих опций. Такие кнопки входят в состав группы, если они различны по назначению, либо все кнопки в диалоговом окне образуют единую группу; выбор одной из кнопок внутри группы означает автоматический невыбор других. Подобные переключатели образуют набор OptionButtons(). Свойство Value принимает значение True, если выбрана кнопка, и False - в противном случае.
Окно списка предоставляет для выбора список значений, при этом редакция списка невозможна. Формирование списка осуществляется только программным путем. Существует несколько вариантов организации списков с помощью свойств объекта;
∙ ListFillRange ≈ ссылка на диапазон ячеек электронной таблицы, содержащей значения элементов списка;
∙ List() ≈ перечисление элементов списка непосредственно, замена старого списка новым целиком.
Раскрывающийся список во многом соответствует окну списков, но этот элемент входит в набор DropDowns().
Поле ввода со списком объединяет окно списка и окно редактирования. При выборе элемента списка он автоматически появляется в окне редактирования, где возможна его корректировка. В принципе это два разных окна с различными свойствами.
Поле ввода с раскрывающимся списком представляет собой комбинацию выпадающего списка, элементы которого можно редактировать.
Линейка прокрутки создает горизонтальную или вертикальную линейку прокрутки. Свойство Value содержит число, соответствующее положению ползунка, доступ к линейкам прокрутки через набор-ScrollBars(). Свойства Min и Мах управляют диапазоном значений, доступны как из программы, так и через диалоговое окно форматирования элемента. Свойства LargeChange и SmallCnange содержат величину изменения свойства Value.
Регулятор счетчикааналогичен линейке прокрутки, но отсутствует свойство LargeChange.
На рис. 19.27 представлено диалоговое окно пользователя для ввода данных об экзаменационных оценках.
Диалоговое окно пользователя включает следующие элементы:
- метки (Группа, Фамилия Имя Отчество, N зач.книжки и др.);
- окно списка для выбора N группы - список может быть сформирован в ячейках рабочего листа, при этом выделение элемента списка может быть одинарным, множественным или связным. Результат выбора можно записать в указанную ячейку рабочего листа;
- поля ввода (Фамилия Имя Отчество, ╧ зач.книжки, Дата), для которых может быть указан тип вводимой информации (текст, целое число, число, ссылка, формула), наличие многострочного текста и вертикальной линейки прокрутки;
- раскрывающиеся списки (дисциплина, преподаватель, оценка), элементы которых могут быть записаны в ячейках рабочего листа, указывается максимально возможное число элементов;
- кнопки управления (<По умолчанию>, <0тмена>, <3акрыть>, <Справка>).
Рис. 19.27. Диалоговое окно пользователя
Для выделенного элемента диалогового окна с помощью команды контекстного меню Формат объекта вызывается окно "Форматирование объекта" для задания указанных, характеристик.