ЛАБОРАТОРНАЯ РАБОТА N 2
Изучение объектов VBA на примере линейной программы
Программа (код программы) записывается в окне
кода.
Окно кода используется при написании любой
программы VBA, будь это код макроса, запуск которого осуществляется при нажатии
кнопки в созданной пользователем форме, или подпрограмма.
Под строкой заголовка окна расположены два списка.
В первом списке выводятся все объекты модуля, а во втором – список процедур,
связанных с выбранным объектом.
Код программы вводится непосредственно в окно
кода, так же как текст в любом текстовом редакторе.
Код программы может быть связан с формой -UserForm-(программа пишется для
соответствующей формы) так и не связан с ней (пример программ на Паскале). В
последнем случае программу пишут в окне модуля.
Для того, чтобы получить окно модуля необходимо
выполнить следующие действия: Вставка ® Модуль
Чаще в VBA имеют дело с формой (UserForm). Чтобы получить окно формы необходимо произвести такие действия: Вставка ® UserForm
Если программа пишется под форму, то ее код будет
включать ет ряд маленьких подпрограмм. Для каждого события, возникающего в
форме необходимо написать процедуру (последовательность совместно выполняемых
инструкций, имеющая имя) обработки.
В проекте VBA часто требуется создать собственную
форму. Например, может понадобиться задать значения параметров перед
выполнением некоторой операции.
В VBA, формы можно создать самостоятельно.
Форма - это тоже самое, что и любое
диалоговое окно. Панель элементов позволяет разместить ряд элементов управления
в форме.
Инструменты панели элементов
Допускается настройка
панели элементов путем добавления к ней страниц или элементов управления с
помощью команды Дополнительные элементы... из меню Сервис.
При добавлении страницы в нее автоматически
вставляется инструмент Выбор объектов.
Выбор объектов
Это единственный инструмент на панели элементов,
не создающий никаких элементов управления. Он служит для изменения размеров и
положения элементов формы.
Надпись
Позволяет отобразить в форме неизменяемый текст,
например подпись к рисунку.
Поле
Содержит вводимый и изменяемый пользователем
текст.
Поле со списком
Вставляет объект, являющийся сочетанием списка и
поля. Пользователь может либо выбрать нужное значение из списка, либо ввести
его в поле.
Список
Вставляет список выбираемых пользователем
элементов. Допускается прокручивание списка, если не все его элементы видны
одновременно.
Флажок
Создает ячейку, которая может быть помечена
пользователем, как имеющая значение истина или ложь, а также использующуюся для
предоставления выбора нескольких вариантов.
Переключатель
Используется для предоставления выбора одного
варианта из многих.
Выключатель
Создает кнопку, имеющую два состояния: включено и
выключено.
Группа
Позволяет установить графическую или
функциональную группировку элементов управления. Для создания группы следует
сначала создать ее рамку, а затем внутри нее создать необходимые элементы.
Кнопка
Создает кнопку, при нажатии которой выполняется
команда.
Набор вкладок.
Позволяет создать несколько станиц в одной и той
же области окна или окна диалога.
MultiPage.
Служит для представления нескольких экранов
информации в виде единого набора.
Создает графический инструмент для быстрого
перемещения по длинным спискам элементов или по большим документам,
отображающий текущее положение.
Полоса прокрутки
Создает графический инструмент для быстрого
перемещения по длинным спискам элементов или по большим документам,
отображающий текущее положение.
SpinButton
Прокручивающий элемент управления используется
совместно с другими элементами для увеличения или уменьшения числовых значений.
Допускается его использование для выбора объекта из диапазона значений или из
списка элементов.
Рисунок
Отображает в форме точечный рисунок, значок или
метафайл.
После размещения элементов управления на форме
необходимо связать объект на форме с кодом.
В VBA очень просто связать
объект с кодом. Для выполнения данной операции:
a.
Дважды щелкните по элементу управления в форме. Появляется окно модуля
для выбранного объекта. Выберите событие для которого требуется создать
процедуру обработки, в списке, расположенном в верхнем правом углу окна модуля.
Введите текст процедуры.
b.
Вызвать контекстное меню необходимого объекта правой клавишей мыши и
нажать поле Программа.
Решение любой
задачи имеет три части:
1.
Ввод данных
2.
Обработка данных
3.
Вывод результата
Под вводом данных понимается описание всех
переменных, констант и массивов, используемых в программе, а также код,
обеспечивающий присвоение этим переменным вводимых данных.
Под так называемой обработкой данных понимается
код, состоящий из математических выражений, которые приводят к получению
результата.
Вывод результата – это код программы, который
позволяет отобразить полученный результат в необходимом виде: на экране (лист excel,
форма), на принтере и т.д.
Сохранение программы
1)
Если программу сохраняется первый раз или вас устраивает уже
существующее имя, то сохранять можно как в VBA, так и в Excel;
2)
Если вас не устраивает уже существующее имя, то сохранять необходимо
таким образом: выйти в Excel, выбрать пункт меню Файл, а в нем пункт - Сохранить как.
Решим
задачу: найдем сумму а + в = с
Порядок выполнения работы:
1.
Выполнить команду СЕРВИС /МАКРОС/РЕДАКТОР VBA
2.
Выполнить команду ВСТАВКА/USER FORM
3.
Поместить на форму элементы, требуемые для
решения задачи, с панели элементов, и расположить их нужным образом.

4.
Изменить свойства объектов на форме c помощью окна свойств.
|
Свойство |
Значение |
|
Label1.Caption |
A |
|
Label2.Caption |
В |
|
Label3.Caption |
С |
|
СоmmandButton1 |
Результат |
|
CheckBox1.Caption |
Очистка окон |
|
Для всех объектов свойство .BackColor |
По своему вкусу выбрать цвет Из палитры цветов |
|
Для Label1, Label2 ,Label3 Свойство .Font |
В диалоговом окне “Шрифт”, которое появится после
щелчка по Кнопке с изображением трех маленьких точек, расположенной напротив
свойства Font в окне свойств, выбрать размер 16 |
1.
Написать программный код. Для этого
рекомендуется выполнить двойной щелчок по кнопке результат и перейти в окно программы, где набрать текст процедуры
обработки события Click() для
кнопки и для флажка(CheckBox1):
Private
Sub CheckBox1_Click()
TextBox1.Text
= ""
TextBox2.Text
= ""
TextBox3.Text
= ""
TextBox3.Visible
= False
TextBox1.SetFocus
CheckBox1.Value
= False
End Sub
Private
Sub CommandButton1_Click()
Dim a
As Integer
Dim b
As Integer
Dim c
As Integer
a =
CInt(TextBox1.Text)
b =
CInt(TextBox2.Text)
c = a + b
MsgBox "результат смотри в TextBox3"
TextBox3.Visible
= True
TextBox3.Text
= c
End Sub
Пояснения
к программе:
1) Dim а As Integer
Эта
инструкция описывает переменные как Integer —
целые числа от -32768 и до 32767. При попытке присвоить а число, выходящее за
пределы этого диапазона, возникает ошибка. При присваивании а дробного числа,
выполняется округление.
Инструкция Dim -
Описывает переменные и выделяет для них память.
2) CInt -
функция преобразования типов данных (преобразовывает выражение в скобках к типу
Integer).
Синтаксис
CInt(выражение)
3) c=a+b
Оператор присваивания ( = )-вычисляется
значение выражения, стоящего справа от знака присваивания, и присваивается
переменной, стоящей слева от знака присваивания.
4) MsgBox "результат смотри в TextBox3"
Появляется на экране окно сообщений MsgBox, в котором отображается
сообщение, записанное в кавычках, и выполнение программы останавливается до тех
пор пока не будет нажата кнопка "OK".
5) TextBox3.Text = c
Результат выполнения программы (с) выводится
на форму в TextBox3
6) TextBox1.Text = "", TextBox2.Text =
"", TextBox3.Text = ""
Производится
очистка полей TextBox1, TextBox2, TextBox3.
7) TextBox1.SetFocus
Устанавливается фокус (курсор) в TextBox1.
8) CheckBox1.Value = False
Исчезает галочка у флажка CheckBox1.
Блок-схема к программе

1. f(x,y¸z)
= (x^2-y^2)/(1+z+x^2).
2. 2.f(x,y,z) = (x+y+z)/(x^2+y^2+z^2).
3.
f(x,y)=x./(1+y)+y/(1+x)+1/(x+y).
4. f(x,y,z)=(x+y+z)/(x*y*z).
5. f(a,b,c,x)=a*x^2+b*x+c.
6.
Вычисления процентного отношения двух
чисел(сколько процентов составляет величина первого от величины второго).
7.
Вычисления дискриминанта квадратного
уравнения.
8.
f(x,y)=(x+y)(x^2+y^2)(x^3+y^3).
9. f(x,y,z)=(x*y*z)/(x+y^2+z^3).
10. f(x,y,z)=x/(y+z)+y/(x+z)+z/(x+y).
11. f(x,y,z)=(x+1)/y/z+sin(z)/y/x+1n(y)/x/z.
12. f(x,y,z)=x^3+y^4+z^5.
13. f(x,y,z)=x*y/z+y*z/x+z*x/y.
14. f(x,y,z)=(x^3+1)/(y+z^2)
15. f(x,y)=(x^2+y^2)/(5*x*y)
16. f(x,y)=3*(x+y)/x*(x+y)