Занятие 12 Практическое занятие 12. Создание электронных форм



Скачать 87.88 Kb.
Дата24.07.2013
Размер87.88 Kb.
ТипПрактикум



Практикум по Excel-2. Занятие 12

Практическое занятие 12.

Создание электронных форм



Цель работы:

изучение возможностей языка программирования Visual Basic for Application для создания электронных форм.

  1. Формы и элементы управления в VBA





    1. Для создания программ на VBA в Excel формы и элементы управления используется так же, как и в Word.

    2. Далее приводится сведения об элементах и формах VBA, необходимые для выполнения данной работы. Более подробно эти сведения приведены в методических указаниях к практическим занятия по Word, см. файл «Практическое занятие 8 форма.doc» в сетевой папке первого курса.

    3. Новая форма создается командами VBA Insert – UserForm. При этом открывается окно конструктора форм и панель элементов управления ToolBox (рис.1).



Рисунок 1 Конструктор форм и панель элементов управления ToolBox.


    1. Для добавления элемента управления на форму нужно его выделить на панели ToolBar, и изменившим форму курсором «нарисовать» его на форме или просто «перетащить» элемент на форму..

    2. Для выполнения работы потребуются следующие управляющие элементы (название элемента показывается при наведении указателя на иконку управляющего элемента):

Label – надпись. Текст надписи задается свойством Caption программно или в окне Properties (см. рис.2);

TextBox – поле для ввода\вывода, значение поля представляет собой набор символов и может быть прочитано или записано с помощью свойства Value;

ComboBox – поле со списком («выпадающий список»), элементы списка представляют собой наборы символов (строки) и задаются только программно, с помощью метода AddItem, например, следующие операторы формируют список из трех элементов:

ComboBox1.AddItem "абитуриенты"
ComboBox1.AddItem "студенты"


ComboBox1.AddItem "выпускники"

Элементы списка нумеруются, начиная с нулевого, номер элемента задается \ определяется значением свойством ComboBox1.ListIndex, а значение выбранного элемента, возвращается или устанавливается свойством ComboBox1.Value. Например, после выполнения следующего оператора в списке будет показано значение "студенты":

ComboBox1.ListIndex = 1,

а следующий оператор занесет в ячейку F12 выбранное из списка значение:
Range("F12").Value = ComboBox1.Value


CommandButton – кнопка, обычно используется для запуска выполнения определенных действий в программе. Сами действия описываются в процедуре обработки событий для элемента управления.



MultiPage – набор страниц. Применяется для объединения элементов управления в группы, связанные общими функциями.


    1. Элементы управления реагируют на события – щелчок мышкой, ввод данных в поле, перемещение ползунка и т.п. Эти реакции должны быть описаны в виде отдельной процедуры приложения, использующего форму и элементы управления. Такие процедуры называют обработчиками событий. Переход из конструктора формы в редактор кода производится клавишей F7, обратный переход – Shift – F7. Сверху в окне редактора кода расположены два выпадающих списка: в левом перечисляются все используемые элементы управления, в том числе форма, а в правом все события, на которые реагирует элемент (рис.2). Набор событий, для которых предусмотрена возможность создания обработчиков, отличается для различных элементов управления.

    2. Для формы чаще всего создаются обработчики для событий инициализация (Initialize) и закрытия (QueryClose) формы. Для надписи (Label) обработчики событий обычно не создаются. Для поля ввода \ вывода (TextBox) часто с событием «выход из поля» (Exit) связывают проверку введенных данных, а с событием «нажатие клавиши» () – посимвольный контроль ввода. Например, следующий обработчик событий допускает ввод в поле TextBox1 только цифр и символа «точка», а так же исправление введенных символов клавишами Delete и Backspace. Для этого проверяются коды нажатых клавиш и, если нажатая клавиша не цифра и не точка, то подается звуковой сигнал и обработчик возвращает нулевое значение («ничего не введено, клавиша не нажата»):


Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Select Case KeyAscii

Case 8 ' Клавиша Delete & Back Space

Case 48 To 57 ' клавиши с цифрами 0 - 9

Case 46 ' клавиша с символом "."

Case Else

KeyAscii = 0: Beep ' вернуть 0 и выдать звуковой сигнал

End Select

End Sub





Рисунок 2. Окно свойств (1). Окно редактирования кода (2), открыт список событий формы (3).

Для кнопки (CommandButton) практически всегда обрабатывается событие «Нажатие» (Click), в обработчике программируются действия – вычисления, форматирование, вывод в документ и т.п., определяющие возможности программы.


  1. Операции с рабочими листами и ячейками Excel


    1. Активация должна производиться перед любыми операциями с рабочим листом. Для этого можно применить команду:
      WorkSheets(“Имя рабочего листа”).Activate

    2. Для занесения в ячейку значения из текстового поля можно использовать команды:
      Range(“АдресЯчейкиТипаА1”).Value = TextBox1.Value ‘ для строковых данных и
      Range(“АдресЯчейкиТипаА1”).Value = Val(TextBox1.Value) ‘для числовых данных



    3. Адрес ячейки может задаваться в системе A1 (столбец указывается буквой или двумя буквами, строка – цифрами) или в системе R1C1 (строка и столбец указываются цифрами).

    4. Адресация ячеек в системе R1C1 бывая полезна, когда адрес ячейки необходимо вычислить. С такой адресацией обычно используют объект Cells. Например, следующик операторы помают с ячейку В4 значение из текстового поля TextBox2:

Stoka=2: Stolbec:=4

Cells(Stoka, Stolbec).Value=TextBox2.Value
  1. Задание


    1. Создать форму для заполнения листов рабочей книги «Калькуляция тура».

    2. Описание проекта формы.

      1. Создается многостраничная форма (используется элемент управления MultiPage), каждая страница формы предназначена для заполнения одного из рабочих листов калькуляции.

      2. Страницы для заполнения для заполнения каждого рабочего листа содержат:

      • набор полей TextBox для ввода значений исходных данных;

    • набор элементов Label – надписей, поясняющих назначения текстовых полей;

    • кнопку «Занести в таблицу», по нажатию которой данные, введенные в форму, проверяются и заносятся в ячейки рабочего листа.

      1. На форме размещается кнопки «Калькуляция», «Критический объем», «Диаграмма», по нажатии. которых форма скрывается и активизируется соответствующий рабочий лист книги .

    1. Для вызова формы на каждом рабочем листе книги создается кнопка.
  1. Порядок выполнения работы


    1. Скопируйте в свою папку и откройте шаблон рабочей книги «КалькуляцияТура.xlt»; в редакторе VBAв окне Project выделите проект «КалькуляцияТура» и создайте в нем форму пользователя командами Insert-UserForm.

    2. В окне Propertes задайте свойству ShowModel значение False. Задайте название формы, например «Ввод данных», введя значение в поле Caption.

    3. Р

      Рисунок 3. Контекстное меню элемента MultiPage

      азместите на форме элемент управления MultiPage. Используя контекстное меню элемента (см. рис.3) создайте страницы для каждого рабочего листа с исходными данными (пункт меню Ntw Page), потребуется пять страниц. Используя пункт меню Rename присвойте страницам названия, соответствующие рабочим листам.

    4. Разместите на страницах 1-5 элемента MultiPage текстовые поля для ввода данных и надписи, поясняющие назначение полей.

На странице для ввода данных для расчета стоимости питания разместите элемент ComboBox для ввода данных в ячейки столбца B (из списка будут выбираться значения «завтрак», «обед», «ужин».

На странице для ввода для расчета стоимости экскурсионного обслуживания разместите элемент ComboBox для ввода данных в ячейки столбца С (из списка будут выбираться значения «билет», «группа»).

В окне Properties для свойства MatchRequired элементов ComboBox установите значение True, чтобы запретить пользователю вводить значения, которых нет в списке.

    1. В обработчике события «Инициализация формы» поместите операторы для задания значений элементам списков ComboBox (см. п.1.5). Для каждого списка задайте свойству ListIndex значение 0, чтобы после открытия формы в каждом списке был показан его первый элемент.

    2. Для полей, в которые вводятся текстовые значение, используемые в расчетах, создайте обработчик события KeyPress, позволяющий вводить только цифры, а там где требуется – цифры и десятичную точку.

    3. На каждой странице элемента MultiPage разместите кнопку CommandButton. После нажатия этой кнопки данные, введенные на странице будет помещаться в ячейке соответствующего рабочего листа.

    4. Создайте обработчики события Click для каждой кнопки. Проверяйте работоспособность каждой кнопки и переходите к следующей только после того, как убедитесь, что кнопка работает правильно.

      1. Обработчик для кнопки на странице «Характеристика тура». В обработчике сначала активируется рабочий лист «Характеристика тура», а затем значения из полей TextBox заносятся в ячейки рабочего листа. Для этого используются операторы, имеющие вид:

Range(“B2”).Value = TextBox1.Value ‘ для строковых данных и
Range(“B3”).Value = Val(TextBox1.Value) ‘ для числовых данных
(номера ячеек и текстовых полей – условные, их нужно уточнить по рабочему листу и форме).

      1. Обработчик события на странице «Транспортные расходы». При каждом нажатии на кнопку должен активизироваться рабочий лист, заполняться ячейка C2 (стоимость часа аренды автобуса) и заполняться одна строка таблице, в ячейках строки указывается день тура и продолжительность переездов в этот день. Обратим внимание, что в шаблоне страницы есть всего четыре строки между шапкой таблицы и строкой, в которой вычисляется сумма транспортных расходов. Таким образом, сначала нужно заполнить пустые строки, а затем вставлять новую строчку, копировать в нее формулы и заполнить значениями. В обработчике кнопки этого листа используется следующая последовательность шагов:

  • активируется рабочий лист;

  • в ячейку С2 вставляется преобразованное в число значение из текстового поля 1;

  • свойства Column и Row используются для определения номера столбца и номера строки над первой ячейкой с данными (ячейка А4);

  • в цикле перебираются строки таблицы, ищется первая пустая строка, в нее будут вставляться данные. Если следующая за ней строка не пустая, то текущая строка копируется в буфер и данных добавляется еще одна пустая строка (EntireRow.Insert), это нужно, чтобы диапазон вычисления итогов был автоматически расширен. Для добавленной строки выполняется специальная вставка с параметром копирования формул (.PasteSpecial xlPasteFormulas);

  • добавляются данные в строку, цикл прерывается



Программа для обработки события Click может выглядеть следующим образом:
Private Sub CommandButton2_Click()

Worksheets("Транспортные расходы").Activate

Range("С2").Value = Val(TextBox1.Value)
NomerStolb = Range("A4").Column

NomerStroki = Range("A4").Row
Ext = False

Do

NomerStroki = NomerStroki + 1

If IsEmpty(Cells(NomerStroki, NomerStolb)) Then

'нашли пустую строку

If Not IsEmpty(Cells(NomerStroki + 1, NomerStolb)) Then

'Если следующая за ней строка не пустая, то прежде, чем вставлять данные, нужно добавить еще одну пустую строку.

Rows(NomerStroki).Copy

Rows(NomerStroki).EntireRow.Insert

Rows(NomerStroki).PasteSpecial xlPasteFormulas

End If

' в предпоследную пустую строку вносятся данные из формы

Cells(NomerStroki, NomerStolb).Value = TextBox13.Value

Cells(NomerStroki, NomerStolb + 1).Value = Val(TextBox14.Value)

Ext = True

Loop Until Ext

End IfEnd Sub



      1. Обработчики событий для кнопок на остальных страницах подобны обработчику для кнопки на странице транспортных расходов.

    1. Создайте на каждом рабочем листе рабочей книги кнопку для запуска формы.

      1. Откройте (Вид – Панели инструментов) панель «Элементы управления»:





      1. Включите «Режим конструктора» выберите элемент управления «Кнопка» и перетащите его на рабочий лист.

      2. Откройте «Окно свойств» элемента, задайте надпись на кнопке (свойство Caption), например, «Заполнение таблицы», закройте окно свойств.

    1. Перейдите в режим программирования (кнопка «Исходный текст»).

    2. В обработчике события Click кнопки разместите команду UserForm1.Show для открытия формы пользователя. Обратите внимание: программный код элемента управления по умолчанию создается в модуле соответствующего рабочего листа.

    3. Вернитесь на рабочий лист и выйдите из режима конструктора.

    4. Проверьте работоспособность кнопки.

    5. Создайте такие же кнопки для всех рабочих листов.

    1. Создайте на форме три кнопки для просмотра результатов. Нажатие кнопки должно активировать соответствующий рабочий лист (Калькуляция, Критический объем или Диаграмма) и скрывать форму. Для скрытие формы использовать команду:

    2. UserForm1.Hide

    3. Сохраните работу как рабочую книгу Excel.


www.alural.narod.ru/inform/intro.htm Александр Ю. Алексеев



Похожие:

Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие по развитию познавательных умений, 2 практическое занятие по решению познавательных задач, 3 практическое занятие по проверке результатов творческо -поисковой деятельности
Данный курс учит работать с картой и графическим материалом, моделировать процессы и события, способствует наглядному и образному...
Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие по письменности на Санскрите Практическое занятие по написанию шлок на Санскрите и их произнесению
Что такое Санскрит? Почему его называют первичным языком человечества? Структура и системная организация Санскрита
Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие 3 Работа с табличным процессором ms excel. Освоение приемов работы с электронными таблицами Практическое занятие 3
В документе Tabl xls сделайте активным лист Таблица. Выделите и очистите лист. Создайте приведенную на рис. 1 таблицу
Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие 1 Организационное собрание Занятие 2 Обсуждение источников и литературы Занятие 3 Рефераты
Богатуров А. Д., Аверков В. В. История международных отношений. 1945-2008: учебное пособие для студентов вузов. М., 2010
Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие № Случайные события. Мера их неопределенности. Формула Хартли 8 Занятие № Энтропия по Шеннону. Свойства энтропии 16 Занятие № Условная энтропия. Решение задач на условную энтропию 21 Занятие № Количество информации
Очевидно, что для качественного преподавания данного курса в основной и средней школе необходима соответствующая специальная подготовка...
Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие Школы журналистики №1 «Хочу стать журналистом»
Здравствуйте ребята, сегодня у нас с вами необычное занятие это занятие-викторина под названием “Хочу стать журналистом”
Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие в младшей группе. Воспитатель: Егорова М. А. Занятие№1 Тема Игра"Геометрическое лото"

Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие по логике. Какое нам нужно иметь настроение, чтобы занятие получилось удачным?

Занятие 12 Практическое занятие 12. Создание электронных форм iconЛабораторно практическое занятие
На метеорологических станциях производятся измерения температуры поверхности почвы и на глубинах до 3,2 м
Занятие 12 Практическое занятие 12. Создание электронных форм iconЗанятие математического кружка на примере кружка, взятого из главы 1 «Введение в алгебру» 7 класса. Заголовок «Занятие 1» условно, это не значит, что этот материал рассчитан на проведение одного занятия по этой теме
Предлагаем познакомиться, как выглядит занятие математического кружка на примере кружка, взятого из главы 1 «Введение в алгебру»...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org