Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка1_лаб.doc
Скачиваний:
17
Добавлен:
04.11.2018
Размер:
1.26 Mб
Скачать

Лабораторная работа №3 разработка линейной программы на vba

Цель работы – получение навыка разработки линейных программ на VBA c разработкой интерфейса с использованием пользовательской формы UserForm.

Окно модуля используется при написании любой программы VBA, будь это код макроса, запуск которого осуществляется при нажатии кнопки в созданной пользователем форме, или подпрограмма.

Под строкой заголовка окна расположены два списка. В первом списке выводятся все объекты модуля, а во втором – список процедур, связанных с выбранным объектом.

Код программы вводится непосредственно в окно модуля, так же как текст в любом текстовом редакторе.

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

Создание процедуры с помощью диалогового окна "Вставка процедуры"

1 Откройте модуль, для которого создается процедура.

2 Выберите команду Процедура в меню Вставка.

3 Введите имя процедуры в поле Имя диалогового окна Вставка процедуры.

4 Выберите тип для создаваемой процедуры: Sub, Function или Property.

5 Задайте область определения процедуры как Public или Private.

6 Чтобы добавить в описание процедуры ключевое слово Static, выберите Все локальные переменные считать статическими.

Нажмите кнопку OK. В окне модуля выводится пустая процедура с данным именем.

Sub

Процедура Sub представляет собой последовательность инструкций языка Visual Basic, ограниченных инструкциями Sub и End Sub, которая выполняет действия, но не возвращает значение.

Function

Процедура Function представляет собой последовательность инструкций языка Visual Basic, ограниченных инструкциями Function и End Function. Процедура Function подобна процедуре Sub, однако в отличие от последней она возвращает значения. Процедура Function может получать аргументы, как например константы, переменные, или выражения, передаваемые ей вызывающей процедурой.

Property

Процедура Property представляет собой последовательность инструкций языка Visual Basic, которые позволяют программисту создавать собственные свойства и оперировать с ними.

В проекте VBA часто требуется создать собственную форму. Например, может понадобиться задать значения параметров перед выполнением некоторой операции.

В VBA, формы можно создать самостоятельно. Форма - это тоже самое, что и любое диалоговое окно. Панель элементов позволяет разместить ряд элементов управления в форме.

В VBA очень просто связать объект с кодом. Для выполнения данной операции:

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

Вызвать контекстное меню необходимого объекта правой клавишей мыши и нажать поле Программа.

Решение любой задачи имеет три части:

Ввод данных

Обработка данных

Вывод результата

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

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

Вывод результата – это код программы, который позволяет отобразить полученный результат в необходимом виде: на экране (лист excel, форма), на принтере и т.д.

Решим задачу: найдем сумму а + в = с

Порядок выполнения работы:

  1. Выполнить команду СЕРВИС /МАКРОС/РЕДАКТОР VBA

  2. Выполнить команду ВСТАВКА/USERFORM

  3. П оместить на форму элементы, требуемые для решения задачи, с панели элементов, и расположить их нужным образом.

  1. Изменить свойства объектов на форме c помощью окна свойств.

Свойство

Значение

Label1.Caption

a

Label2.Caption

в

Label3.Caption

с

СоmmandButton1

результат

CheckBox1.Caption

Очистка окон

Для всех объектов свойство

.BackColor

По своему вкусу выбрать цвет

Из палитры цветов

Для Label1, Label2 ,Label3

свойство

Font

В диалоговом окне “Шрифт”, которое появится после щелчка по Кнопке с изображением трех маленьких точек, расположенной напротив свойства Font в окне свойств, выбрать размер 16

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

Private Sub CheckBox1_Click() ‘Для очистки текстовых полей

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox3.Visible = False

TextBox1.SetFocus

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

Пояснения к программе:

Dim а As Integer

Эта инструкция описывает переменные как Integer — целые числа от -32768 и до 32767. При попытке присвоить а число, выходящее за пределы этого диапазона, возникает ошибка. При присваивании а дробного числа, выполняется округление.

Инструкция Dim - Описывает переменные и выделяет для них память.

CInt - функция преобразования типов данных.

Синтаксис CInt(выражение)

Тип данных Integer – целые

ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ

  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. Вычисления площади прямоугольного треугольника по двум катетам. Катет a=5 Катет b=3.

  4. f(x,y)=x./(1+y)+y/(1+x)+1/(x+y).

  5. Вычисления площади куба по его стороне. а=3.

  6. f(x,y,z)=(x+y+z)/(x*y*z).

  7. f(a,b,c,x)=a*x^2+b*x+c.

  8. Вычисления процентного отношения двух чисел(сколько процентов составляет величина первого от величины второго). Исходные данные: первое число 5.7 второе число 8.7.

  9. f(x,y,z)=x/y/z+z/y/x/+y/x/z.

  10. Вычисления дискриминанта квадратного уравнения. Исходные данные а=5.9 b=8.9 с= 0.7.

  11. f(x,y)=(x+y)(x^2+y^2)(x^3+y^3).

  12. Вычисления объема шара по заданному радиусу. Исходные данные r =5.78.

  13. Вычисления объема цилиндра по заданному радиусу и высоте. Исходные данные r=5.1 h=1.9.

  14. f(x,y,z)=(x*y*z)/(x+y^2+z^3).

  15. Вычисление главной диагонали параллелепипеда. Исходные данные a=4 b=3 c=6.

  16. f(x,y,z)=x/(y+z)+y/(x+z)+z/(x+y).

  17. Вычисления произведения четырех вещественных чисел. Исходные данные x1=3 x2=4.1 x3=1.8 x4=0.8.

  18. f(x,y,z)=(x+1)/y/z+sin(z)/y/x+1n(y)/x/z.

  19. f(x,y,z)=x^3+y^4+z^5.

  20. f(x,y,z)=x*y/z+y*z/x+z*x/y.