Линейная программа с использованием пользовательской формы
В VBA можно использовать пользовательские (настраиваемые) диалоговые окна в создаваемых программах при помощи добавления в проект объекта UserForm. Пользовательская форма представляет собой пустое диалоговое окно (рисунок 16.1), на которое в зависимости от решаемой задачи размещаются нужные элементы управления, используя панель инструментов Toolbox.
Рисунок 16.1 – Окно редактирования форм и панель инструментов
Размещение нового управляющего элемента в форме осуществляется следующей последовательностью действий:
1. Щелкните значок того элемента, который вы собираетесь разместить в форме.
2. Поместите указатель мыши на то место, где будет располагаться управляющий элемент.
3. Нажмите левую кнопку мыши и, не отпуская ее, растяните появившийся прямоугольник до требуемых размеров.
4. Отпустите кнопку мыши. Элемент управления на нужном место создан.
Размеры формы и расположенных на ней элементов управления можно изменять. Технология изменения размеров стандартная для Windows: выделить изменяемый элемент, разместить указатель мыши на одном из размерных маркеров и протащить его при нажатой левой кнопки мыши так, чтобы объект принял требуемые размеры. Окно редактирования форм поддерживает операции буфера обмена, т.е. можно копировать, вырезать и вставлять элементы управления, расположенные на поверхности формы. Для облегчения размещения и выравнивания элементов управления используется сетка. Список основных элементов управления, их назначения и соответствующих кнопок панели элементов приведены в таблице 16.1.
|
|
После размещения элементов управления на форме необходимо связать объект на форме с кодом. Для выполнения данной операции необходимо дважды щелкнуть по элементу управления в форме, появится окно модуля для выбранного объекта в котором необходимо выбрать событие для которого требуется создать процедуру обработки, в списке, расположенном в верхнем правом углу окна модуля и ввести текст процедуры.
Таблица 16.1 – Элементы управления.
Элемент управления | Имя | Назначение | Кнопка для создания |
Надпись | Label | Позволяет отобразить в форме неизменяемый текст, например подпись к рисунку. | |
Поле | TextBox | Предназначен для ввода или вывода данных | |
Кнопка | CommandButton | Создает кнопку, при нажатии которой выполняется команда. | |
Флажок | CheckBox | Создает ячейку, которая может быть помечена пользователем и использующуюся для предоставления выбора нескольких вариантов. | |
Переключатель | OptonButton | Используется для предоставления выбора одного варианта из многих. | |
Выключатель | ToggleButton | Создает кнопку, имеющую два состояния: включено и выключено. | |
Полоса прокрутки | ScroolBar | Создает графический инструмент для быстрого перемещения по длинным спискам элементов или по большим документам, отображающий текущее положение. | |
Счётчик | Spin Button | Прокручивающий элемент управления используется совместно с другими элементами для увеличения или уменьшения числовых значений. | |
Рисунок | Image | Отображает в форме точечный рисунок, значок или метафайл. | |
Список | ListBox | Вставляет список выбираемых пользователем элементов. Допускается прокручивание списка, если не все его элементы видны одновременно. | |
Поле со списком | ComboBox | Содержит вводимый и изменяемый пользователем текст. | |
Рамка | Frame | Позволяет установить графическую или функциональную группировку элементов управления. Для создания группы следует сначала создать ее рамку, а затем внутри нее создать необходимые элементы. | |
Вкладки | MultiPage | Служит для представления нескольких экранов информации в виде единого набора. | |
Ярлыки | TabStrip | Позволяет создать несколько станиц в одной и той же области окна |
Свойства объектов. Каждый объект обладает некоторыми характеристиками, или свойствами. Изменяя свойства, можно менять характеристики объекта. Таким образом, свойство представляет собой атрибут объекта, определяющий его характеристики, такие, как размер, цвет, положение на экране и состояние объекта, например доступность или видимость.
|
|
|
|
Синтаксис применения свойства Объект.Свойство
Основные общие свойства элементов управления приведены в таблице 16.2.
Таблица 16.2 – Общие свойства элементов управления
Свойство | Описание |
Caption | Надпись, отображаемая при элементе управления |
AutoSize | Допустимые значения: True (устанавливает режим автоматического изменения размеров элемента управления так, чтобы на нем полностью помещался текст, присвоенный свойству Caption) и False (в противном случае) |
Visible | Допустимые значения: True (элемент управления отображается во время выполнения программы) и False (в противном случае) |
Enabled | Допустимые значения: True (пользователь вручную может управлять элементом управления) и False (в противном случае) |
Height и Width | Устанавливают геометрические размеры объекта (высоту и ширину) |
Left и Top | Устанавливают координаты верхнего левого угла элемента управления, определяющие его местоположение в форме |
ControlTipText | Устанавливает текст в окне всплывающей подсказки, связанной с элементом управления. В следующем примере элементу управления CommandButton назначен текст, всплывающей подсказки это кнопка: CommandButton1.ControlTipText = "Это кнопка" |
BackColor, ForeColor BorderColor | Устанавливают цвет заднего и переднего плана элемента управления, также его границы |
BackStyle | Устанавливает тип заднего фона |
BorderStyle | Устанавливает тип границы. Допустимые значения: fmBorderStyleSingle (граница в виде контура); fmBorderStyleNone (граница невидима) |
Picture (создание картинки) | Внедряет картинку на элемент управления. Например, на поверхности кнопки картинка отображается с помощью следующей инструкции: CommandButton1. _ Picture =LoadPicture("с:\my doc\Kpyг.bmp") Функция LoadPicture (ПолноеИмяФайла) считывает графическое изображение. Аргумент ПолноеИмяФайла указывает полное имя графического файла |
Picture (удаление картинки) | После того как картинка создана на элементе управления, иногда возникает необходимость ее удалить. Это легко достигается присвоением свойству Picture значения LoadPicture("") CommandButton1.Picture = LoadPicture("") |
|
|
Метод. Объект содержит также список методов, которые к нему могут быть применены. Например, показать форму на экране или убрать его можно с помощью методов Show и Hide соответственно. Таким образом, метод представляет собой действие, выполняемое над объектом.
Синтаксис применения метода Объект.Метод
В таблице 16.3 перечислены основные общие методы элементов управления.
Таблица 16.3 – Основные общие методы элементов управления
Метод | Описание |
Add | Позволяет добавить элемент управления во время выполнения программы |
Move | Перемещает элемент управления |
SetFocus | Устанавливает фокус на вызвавшем этот метод элементе управления. |
Zorder | Помещает объект до или после всех пересекающихся с ним объектов |
Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью или нажатие клавиши), для которого можно запрограммировать отклик. События возникают в результате действий пользователя программы, или же они могут быть вызваны системой. К событиям относятся, например, процедуры Initialize, Load, Click и DblClick. Эти процедуры имеют следующий синтаксис:
Sub UserForm_Событие()
Последовательность инструкций
End Sub
В таблице 16.4 приведены события элементов управления, для которых можно создать процедуры обработки событий. Каждый элемент управления, который вы добавите в свою форму, будет иметь доступ к этим событиям.
Таблица 16.4 – События элементов управления
Событие | Описание |
Click | Происходит, когда пользователь выбирает элемент управления с помощью одинарного щелчка кнопкой мыши |
DblClick | Происходит, когда пользователь выбирает элемент управления с помощью двойного щелчка кнопкой мыши |
Change | Происходит при изменении значения элемента управления |
GotFocus | Происходит, когда элемент управления получает фокус |
LostFocus | Происходит, когда элемент управления теряет фокус |
Error | Используется при уведомлении об ошибке |
Exit | Происходит, когда с элемента управления снимается выделение |
Задание 16.1
Создать пользовательскую форму для вычисления по вариантам, предусмотрев на ней функцию очистки окон.
Вариант 1 Вычислить
Вариант 2 Вычислить
Вариант 3 Вычислить площадь прямоугольного треугольника по двум катетам.
Вариант 4 Вычислить
Вариант 5 Вычислить площадь куба по его стороне.
Вариант 6 Вычислить
Вариант 7 .
Вариант 8 Вычислить дискриминант квадратного уравнения по заданным коэффициентам.
Вариант 9 Вычислить
Вариант 10 Вычислить объем шара по заданному радиусу.
Вариант 11 Вычислить объем цилиндра по заданному радиусу и высоте.
Вариант 12 Вычислить .
Вариант 13 Вычислить
Вариант 14 Вычислить произведение четырех вещественных чисел.
Вариант 15 Вычислить длину гипотенузы по заданным длина катетов.
Пример выполнения задания Найти сумму а + в = с.
Порядок выполнения работы:
1. Запустить редактор Visual Basic одним из следующих способов:
2. Выполнить команду Вставка ( Insert) ® UserForm
3. Поместить на форму элементы, требуемые для решения задачи, с панели элементов, и расположить их нужным образом, как показано на рисунке 16.2.
Рисунок 16.2 – Вид пользовательской формы
4. Изменить свойства объектов (таблица16.5) на форме c помощью окна свойств. Вид пользовательской формы после назначения свойств представлен на рисунке 16.3.
Таблица 15 – Свойства объектов
Свойство | Значение |
Label1.Caption | a |
Label2.Caption | в |
Label3.Caption | с |
СоmmandButton1.Caption | результат |
CheckBox1.Caption | Очистка окон |
Для всех объектов свойство .BackColor | По своему вкусу выбрать цвет из палитры цветов |
Для Label1, Label2 ,Label3 свойство .Font | В диалоговом окне “Шрифт”, которое появится после щелчка по Кнопке с изображением трех маленьких точек, расположенной напротив свойства Font в окне свойств, выбрать размер 16 |
Рисунок 16.3 – Вид пользовательской формы после назначения свойств
5. Написать программный код. Для этого рекомендуется выполнить двойной щелчок по кнопке результат и перейти в окно программы, где набрать текст процедуры обработки события Click() для кнопки CommandButton1:
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
6. Двойной щелчок по элементу управления CheckBox1 вызовет процедуру обработки события Click(), где необходимо написать программный код для очистки полей TextBox:
Private Sub CheckBox1_Click()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox3.Visible = False
TextBox1.SetFocus
CheckBox1.Value = False
End Sub
Условный оператор IF
Для изменения порядка выполнения программного кода используются условный оператор IF, который позволяет выбирать и выполнять действия в зависимости от истинности некоторого условия.
Имеется два варианта синтаксиса записи условного оператора:
1) Строчная форма записи условного оператора:
IF <условное выражение> Then <операторы 1> [ Else <операторы 2>]
Работает данный оператор следующим образом: если <условное выражение> принимает значение True (истина), то выполняются <операторы 1> после Then и управление передается оператору, следующему за условным. Если <условное выражение> принимает значениеFalse (ложь), то выполняются <операторы 2> за ключевым словом Else и управление передается оператору, следующему за условным. Ветвь Else является необязательной
2) Блочная форма записи оператора IF (оператор расположен на нескольких строках ):
IF < условное выражение 1> Then
<операторы 1>
[ ElseIf < условное выражение – n> Then
[<операторы- n >]…
[ Else
[<ИначеОператоры>]
End If
Работает данный оператор следующим образом: если <условное выражение1> принимает значение True, то выполняются <операторы 1> и управление передается оператору, следующему за условным. Если <условное выражение1> равно False, то при наличии конструкции [ ElseIf < условное выражение – n> проверяется значение < условное выражение – n>. Если оно имеет значение True, то выполняются [<операторы- n >] и управление передается оператору, следующему за условным, в противном случае выполняются операторы [<ИначеОператоры>] после Else.
Пример записи оператора:
‘Строчная форма записи: IF A>10 Then A=A+1ELSE A=2*А
‘тот же условный оператор в блочной форме:
IF A>10 Then
A=A+1
ELSE A=2*А
End If
На блок-схеме условные операторы отображаются как показано на рисунке 9.1.
Рисунок 9.1 – Условный оператор на блок-схеме
Задание 9.1 Написать программу с использованием условного оператора в соответствии с вариантом.
№ варианта | Задание |
1 | Вычислить |
2 | Ввести три целых числа, используя InputBox, и определить, сумма каких двух является наибольшей. |
3 | Ввести число Х, используя InputBox, и определить, делится ли оно на 2 и на 3. |
4 | Вычислить |
5 | Ввести число Х и определить, является ли оно четным. |
6 | Вычислить |
7 | Ввести число N и определить делится ли оно без остатка на число M. Числа вводить, используя InputBox. |
8 | Вычислить |
9 | Ввести три целых числа и определить, произведение каких двух является max |
10 | Сравнить, что больше Sin(x), Tg(x) или Cos(x). |
11 | Вычислить |
12 | Ввести число Х и определить, делится ли оно на 8 и на 6. Результаты проверок вывести. Числа вводить, используя InputBox. |
13 | Составьте программу для нахождения минимального из 3-х чисел. |
14 | Вычислить |
15 | Составьте программу, которая запрашивает два числа и ответ на сумму этих чисел, проверяет его и выводит сообщение: «Правильно» или «Вы ошиблись» и правильный ответ. |
Пример выполнения задания Ввести х и вычислить значение функции F по формуле:
Порядок выполнения работы:
1. В Ячейку А1 ввести текст “Исходные данные”
2. В ячейку А2 ввести текст “Х=”
3. В ячейку В2 ввести числовое значение Х.
4. В ячейку C1 ввести текст “результат при х>0”
5. В ячейку D1 ввести текст “ результат при х<0”
6. Запустить редактор VBA (ALT+F11),
7. Выполнить команду ВСТАВКА/МОДУЛЬ
8. Ввести имя модуля SUB LL()
9. Набрать текст программы:
Sub LL () Dim x As Double X= Worksheets(1).Range(“B2”).Vаlue IF Х>0 Then F=X/2 Worksheets(1).Rаnge(“C2”).Value=F ELSE F=(X+1)/2 Worksheets(1).Range(“D2”).Vаlue=F End If End Sub | присвоение переменной X числового значения ячейки B2 Блок условного оператора IF конец процедуры |
10. Оформить отчет: в тетрадке представить код программы и алгоритм решения (Рисунок 9.2)
Рисунок 9.2 – Алгоритм программы
Дата добавления: 2019-11-16; просмотров: 315; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!