Построение экранных форм (Forms)
Чтобы дать указания макросу для выполнения действий со сложными условиями, необходимо создание экранных форм, так как обычных диалогов уже не хватает. Точнее, придется выводить множество запросов, что явно не отвечает требованиям эргономики интерфейса. Они ничем не отличаются от любых диалогов во всех программах, кроме возможности добавления управляющих элементов.
Но! Вспомните, сколько раз вам приходилось выискивать нужный пункт в диалоге или пытаться осознать, о чем вас спрашивают? Учтите это при разработке собственных форм. Правила создания диалогов крайне просты: всё запрошено, но сделано это кратко и понятными словами.
Использование форм достаточно сложно и вошло в основной курс изучения только в 2024 году. Более подробно, чем изложено здесь, это будет обсуждаться только с профильными группами или в элективном курсе.
[expert_bq id=»1570″]Свойство Columns определяет число столбцов, в которых будет отображаться список, если он не помещается целиком в окне компонента ListBox. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] В процедуре UserForm_Initialize() присваиваем значения некоторым свойствам элемента управления ListBox1 перед открытием пользовательской формы. Процедура UserForm_Click() при однократном клике по форме выводит в MsgBox значение из третьего столбца выделенной пользователем строки.Populate Userform Listbox or Combobox
Обратите внимание, что при первом запуске формы, когда ячейка «F1» пуста и ни одна строка в ListBox не выбрана, клик по форме приведет к ошибке. Это произойдет из-за того, что свойство ListIndex возвратит значение -1, а это недопустимый номер строки для свойства List.
Работа со списками в Visual Basic
Приведённые практические работы по программированию могут быть использованы при изучении элементов выбора Visual Basic. Списки целесообразно изучать после знакомства с переключателями (OptionButton) и флажками (CheckBox).
При объяснении нового материала удобно использовать распечатки с изложением теоретического материала и примерами программ, которые выдаются каждому студенту (ученику), либо методические пособия (мы используем авторское пособие “Практикум по решению задач в среде Visual Basic”, часть 1, 2).
Приведённые практические работы рассчитаны на 3 занятия по 2 часа. Задания самостоятельной работы можно использовать в качестве домашних заданий.
Свойство Style задаёт внешний вид комбинированного списка (по умолчанию оно равно 0 — элемент ComboBox отображается в виде текстового поля со стрелкой справа, позволяющей развернуть весь список и выбрать требуемое значение). Если Style = 1, то постоянно отображается весь список (или список с полосой прокрутки).
0 — Dropdown Combo (раскрывающийся комбинированный список);
Для добавления нового элемента в список используется метод AddItem.
Пример: Combo1.AddItem “Пение” — добавить в список Combo1 слово Пение.
Добавляемые в список элементы имеют тип String; [index] — порядковый номер в списке, под которым будет находиться новый элемент (необязательный параметр).
Добавить элементы в комбинированный список можно также на этапе разработки с помощью свойства List. Для добавления очередного элемента в список нужно ввести этот элемент в свойстве List и нажать комбинацию клавиш Ctrl + Enter.
Данный элемент применяется в том случае, когда пользователю необходимо выбрать один элемент из имеющегося списка для выполнения определенных действий. Объекты ListBox используются обычно в сочетании с управляющими кнопками, которые позволяют обрабатывать элементы списка (добавлять, удалять и т. д.).
В отличие от ComboBox список ListBox можно создать многоколончатым и осуществлять выбор нескольких элементов одновременно.
- щелчок мыши при нажатой клавише Shift позволяет выделить несколько подряд расположенных элементов;
- щелчок мыши при нажатой клавише Ctrl даёт возможность выделять группу несмежных элементов списка.
0 — одноколончатый список с вертикальной прокруткой;
1 — одноколончатый список с горизонтальной прокруткой;
1 -Simple (простой множественный выбор — щелчок мыши или нажатие Пробел выделяет очередной элемент или снимает выделение);
Private Sub List1_DblClick() ‘перенести из списка в зачёт
Private Sub List2_DblClick() ‘перенести назад в Список из Зачёт
Private Sub List3_DblClick() ‘перенести назад в список из н/а
Private Sub Command1_Click() ‘добавить в список из текст. поля
- Добавьте в проект список оценок (2, 3, 4, 5) – List4.
- Измените проект таким образом, чтобы можно было добавлять в результаты фамилию и оценку ученика.
- Создайте кнопку “Очистить результаты”.
Задание: создать проект для проверки знания иностранных слов (англо-русский и русско-английский переводчик).
- Комбинированные списки Combo1 и Combo2 – для хранения русских и английских слов. Индексы русских слов в списке должны соответствовать индексам соответствующих им английских слов.
- Текстовое поле Text1 — для вывода случайного слова из списка, которое необходимо перевести.
- Текстовое поле Text2 — для вывода комментария “Верно” или “Неверно”.
- Текстовые поля Text3, Text4 — для вывода количества вопросов и верных ответов.
- Таймер Timer1 – для временной задержки при выводе очередного вопроса.
- Image1 – для вывода рисунка, соответствующего слову.
- Элемент MMControl1 — для воспроизведения звука.
Рисунки к проекту сохраните в папке с проектом в порядке следования слов в списке Combo1:
Для определения имени файла рисунка в проекте используем переменную Path:
Функция Mid используется для того, чтобы убрать пробел перед числом в имени файла, т.к. функция Str(n) для положительного числа формирует строку с пробелом перед числом. Таким образом, получаем неверное имя файла Ris 0.jpg, вместо Ris0.jpg.
1) В процедуре загрузки формы нужно заполнить списки русских и английских слов.
‘n – индекс слова в списке; k – количество верных ответов; z – кол. вопросов; p – признак направления перевода; Path – путь к файлу с рисунком на диске
2) При выборе кнопки “Перевод рус/англ” должно появляться русское слово. Для данного слова нужно найти перевод в списке английских слов. Список русских слов при этом должен скрываться.
3) В процедуре таймера случайным образом определяем индекс слова в списке слов. Если p=1, то было выбрано направление перевода рус/англ., поэтому слово выбирается из списка русских слов Combo1.
n = Int(Rnd * 4) ‘случайный выбор индекса слова в списке слов
4) Для выбора перевода заданного русского слова пользователь делает щелчок по списку английских слов. Если индекс исходного русского слова n совпадает с индексом слова-перевода, выбранного пользователем, то ответ верный.
- Создайте процедуру кнопки “Перевод англ/рус”.
- Добавьте кнопку Сброс.
- Подберите 2 звуковых файла для подтверждения верного и неверного ответа, подключите эти файлы к проекту.
- Создайте заставку к проекту.
Свойства шрифта в метке задаются следующими командами:
Label1.Font.Underline = True – установить подчёркнутый шрифт
Label1.Font = Combo1.Text – применить к метке тип шрифта, выбранный в комбинированном списке 1
Label1.Font.Size = Combo1.Text — применить к метке размер шрифта, выбранный в комбинированном списке 1
[expert_bq id=»1570″]В случае, когда при открытии формы в привязанной к списку ячейке содержится значение, которого нет ни в одной из строк элемента управления ListBox, будет сгенерирована ошибка. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] В этой статье мы рассмотрим кнопку переключения в Excel 2007 и 2010. Кнопки переключения доступны только как элементы управления ActiveX и идеально подходят для ситуаций, когда вы хотите переключаться между двумя состояниями в Excel.Listbox vba excel примеры
Состояния индикаторов определяют два свойства: State и Checked. Оба эти свойства можно рассматривать как индексированные массивы, каждый элемент которого соответствует индексу строки. Эти свойства можно устанавливать программно или читать, определяя установки пользователя. Например, операторы