Линейная программа с использованием пользовательской формы



 

В 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!