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

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



НазваниеПрактическое занятие 12
Дата конвертации14.09.2012
Размер87.87 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 iconИзготовление ватно-марлевой повязки Практическое занятие по обж

Практическое занятие 12 iconПрактическое занятие 9
Освоение способов создания, оформления таблиц и выполнения вычислений в таблицах
Практическое занятие 12 iconПрактическое занятие 5
Получение практических навыков по настройке программы и созданию и редактированию текстовых документов
Практическое занятие 12 iconПрактическое занятие 8
Освоение способов интеграции объектов: вставка в текстовый документ рисунков, созданных в других приложениях
Практическое занятие 12 iconПрактическое занятие 11
Цель работы: изучение возможностей языка программирования Visual Basic for Application для создания функций пользователя
Практическое занятие 12 iconПрактическое занятие 10
Слияние документов – операция, позволяющая включить в основной документ информацию из другого источника (базы данных, таблицы)
Практическое занятие 12 iconПрактическое занятие 7
Суммесли(диапазон;критерий;диапазон суммирования) – суммирует ячейки, заданные критерием, аргументы
Практическое занятие 12 iconПрактическое занятие 11
Создайте новый документ, введите текст "Создание формул" и сохраните документ в своей папке под именем Формула doc
Практическое занятие 12 iconПрактическое занятие 6
Откройте созданный на предыдущем занятии документ Tekst doc и перейдите в начало документа, нажав комбинацию клавиш Ctrl+Home. Выведите...
Практическое занятие 12 iconПрактическое занятие «Нестандартные методы решения неравенств. Метод замены функций»
Решение некоторых логарифмических неравенств основано на переходе к новому, не зависящему от переменной, основанию
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов