
- •Оглавление
- •Справочная информация Элементы управления и пользовательская форма Элементы управления
- •Режим конструктора
- •Установка свойств элемента управления
- •Редактор кода
- •Пользовательская форма UserForm
- •Семейство Controls
- •Создание пользовательской формы
- •Общие свойства элементов управления
- •Соглашения об именах
- •Общие методы и события элементов управления
- •Объект DataObject
- •Надпись
- •Заполнение списка
- •Выбор нескольких элементов из списка
- •Поле со списком
- •Полоса прокрутки и счетчик
- •Переключатель
- •Флажок и выключатель
- •Ссылки на ячейки и диапазоны
- •Набор страниц
- •Набор вкладок
- •Дополнительные элементы управления
- •Последовательность выбора элементов управления
- •Последовательность перехода
- •Закрытие диалогового окна
- •Отображение встроенных диалоговых окон
- •Примеры Заполнение базы данных Пример 1
- •Пример2
- •If Sheets("БазаДанных").Cells(НайденнаяЗапись, 3)
- •If Sheets("БазаДанных").Cells(НайденнаяЗапись, 6)
- •If Sheets("БазаДанных").Cells(НайденнаяЗапись, 7)
- •Пример: Опросчик Задача:
- •Разработка программы
- •Заключение
- •Задание.
- •Литература
Пример: Опросчик Задача:
Написать программу опросчик для автоматизации проведения социологического опроса следующего вида:
Вопрос |
Варианты ответа |
||
Любите ли вы сыр |
Да |
Нет |
Не знаю |
Сколько вам лет |
0-5 |
6-25 |
26-100 |
Почему вы здесь учитесь |
Родители определили |
Захотелось |
Не знаю |
Что вы делаете, когда хотите спать? |
Иду спать |
Засыпаю на месте |
Заставляю себя не спать до последнего |
Это вопрос для проверки. Выберите вариант, который показался вам наиболее привлекательным. |
два слова |
пять слов в этом варианте |
много много много много много много много много многомного много много много много много много много много слов в этой длинной строке |
Предусмотреть ввод и сохранение ФИО, половой принадлежности и ответов на вопросы респондентов в виде таблицы.
Разработка программы
Прежде всего определим входные и выходные данные а также их размещение.
Входными данными являются:
вопросы и варианты ответов опросника.
ФИО
пол
ответы на вопросы
Выходные данные:
ФИО, пол, ответы, сохранённые в электронном виде.
Вопросы и варианты ответов естественно хранить в виде таблицы. Для их размещения можно использовать рабочий лист2 документа Excel.
ФИО, пол и ответы на вопросы вводятся пользователем по запросу или в диалоговом режиме.
Результаты могут быть представлены в виде таблицы:
ФИО |
пол |
Вопрос1 |
Вопрос2 |
Вопрос3 |
|
|
|
|
|
Результаты могут быть размещены на отдельном листе1 Excel.
В грубом масштабе алгоритм работы программы такой:
Кнопку запуска опросчика разместим непосредственно на рабочем листе1. Для этого:
Откроем панель инструментов «Элементы управления», щелкнув правой кнопкой на свободном месте в области панелей инструментов и выбрав соответствующий пункт
.
Выбираем элемент управления «Кнопка»
.
Размещаем её на свободном месте:
.
Правой клавишей мыши на кнопке открываем контекстное меню и выбираем пункт Edit:
.
Редактируем надпись на кнопке
.
В контекстном меню кнопки выбираем пункт «Исходный текст» и перемещаемся в редактор VBA в модуль обработки события кнопки
. По умолчанию создаётся обработчик события Click.
Вопросы и варианты ответов разместим на листе 2 книги:
.
В начале работы программы опроса проверим наличие вопросов на листе2:
. Если вопросы есть, по ветви «Else» следует вставить команду запуска диалога ввода личных данных.
Для ввода личных данных добавим в проект пользовательские формы. Для этого:
Вставляем объект UserForm в проект
.
На форме размещаем необходимые для ввода ФИО элементы управления:
.
Изменяем их свойства для приведения к надлежащему виду:
и так далее
.
Создаём обработчик события для нажатия кнопки. Для этого дважды щёлкаем по кнопке и попадаем в модуль формы в процедуру обработки стандартного события. Запишем там программу, которая будет вводить ФИО из компонентов формы и сохранять их на листе данных в первой свободной ячейке первого столбца.
В момент открытия формы нужно предусмотреть ряд действий. Для этого создаём обработчик события, которое происходит каждый раз тогда, когда форма открывается:
Текущая форма запускается из обработчика события кнопки, размещённой на Лист1 (Пункт 1h). Исправляем обработчик. Для этого дважды щёлкаем мышью на объекте Лист1 проекта:
. В окне кода вставляем нужные строки и комментарии.
В следующей форме вводим пол и записываем его во второй столбец текущей строки. Форма имеет вид:
. Модуль формы содержит код:
. Здесь обработчик события открытия диалогового окна Private Sub UserForm_Initialize(), обработчики событий нажатия на кнопки Private Sub CommandButton1_Click() и Private Sub CommandButton2_Click() и пользовательская процедура, которая ликвидирует текущее окно и открывает следующее.
Следующее окно будет отображать вопросы и воспринимать варианты ответа.
. В текстовое поле в верхней части формы выводится вопрос. Варианты ответов выводятся справа от переключателей. Выбор осуществляется нажатием на переключатель.
При выборе любого из вариантов происходит следующее:
Выбранный вариант записывается в таблицу результатов на Лист1.
Если вопросы на Листе2 не закончились, отображается следующий вопрос.
Иначе программа завершает работу.
Текст программы модуля третьей формы:
Запуск программы осуществляется нажатием на кнопку, расположенную на Лист1. Для этого надо выйти из режима конструктора элементов управления
.