ТОП 10:

Операторы, выражения и операции



 

Строка с кодом в исходном тексте программы VBA называется программным оператором.

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

Label1.Caption = Time

Правила, применяемые при построении программных операторов, называются синтаксисом.

Программный оператор может включать выражения.

Выражение (Expression) – это комбинация знаков операций и операндов, а также скобки. Назначение любого выражения – получение некоторого значения.

Синтаксическая конструкция выражения:

Операнд1 [операция Операнд2 [операция Выражение]]

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

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

Каждая операция имеет свой приоритет (ранг), как показано в таблице 7. Операции ранга 1 имеют наивысший приоритет и в программном операторе выполняется первым. Операции одного ранга в выражениях выполняются в соответствии с правилами ассоциативности (слева направо или наоборот).

 

Таблица 7 - Приоритеты операций

Приоритет Операция
Выражение, заключенное в скобки ()
Вызов функции
Степень (^)
- (смена знака)
(*) и (/)
(\) деление нацело
Mod (остаток от деления нацело)
(+) и (-)
>, <, >=, <=, <>, =
Not
And
Or

 

Операнды связаны между собой знаками операций

В программах на VBA можно использовать стандартный набор операций над данными. Различают следующие типы операций:

- операция присваивания;

- математические, выполняются над числами и их результатом являются числа;

- отношения, применяются не только к числам, и их результатом являются логические значения;

- логические операции;

- строковые операции.

Операция присваивания

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

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

Синтаксис:

Имя_Переменной = Выражение

где

Имя_Переменной – имя переменной (идентификатор);

Символ «=» – знак операции присваивания;

выражение – значение (число), комбинация переменных, констант,

функций, связанных знаками операций.

Работа операции присваивания.

Операция присваивания предписывает выполнить выражение,заданное в его правой части, и присвоить результат имени переменной,имя которой указано в левой части.

Пример 1.

x = 2

x = x + 2

(переменной х будет присвоено 4)

Для присваивания переменной ссылки на объект применяется инструкция Set.

В общем случае инструкция Set имеет следующий синтаксис:

Set objectvar = [New] objectexpression [Nothing]

где

New – ключевое слово, которое используется при создании нового экземпляра объекта;

Nothing – позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка (т.е. она удаляет объект из памяти).

Пример 2.

Dim A as Object

Set A = cmdOK

MsgBox А.Caption

Инструкция Set присваивает переменной А элемент управления Кнопка с именем cmdOK и далее выводит в окне надпись отображаемую на поверхности кнопки.

 

 

В VBA доступ к свойствам и методам объекта осуществляется через точку. Например ActiveSheet.Cells(1,1). Если нужно обратиться к нескольким свойствам одного объекта, то придется каждый раз писать имя этого объекта. Но есть способ этого избежать. Оператор With используется для указания обьекта, с которым мы будем работать. Это выглядит так:

With объект
операции с объектом
End With

Рассмотрим пример. В нижеприведенном коде выводятся имя и свойство видимости объекта таблицы:

Sub Test()
MsgBox (Application.Worksheets.Item(1).Name)
MsgBox (Str(Application.Worksheets.Item(1).Visible))
End Sub

Используя With это можно сделать так:

Sub Test()
With Application
With .Worksheets
MsgBox (.Item(1).Name)
MsgBox (Str(.Item(1).Visible))
End With
End With
End Sub

Используя With можно получить доступ и к структурам, определенным пользователем:

'----------- Описание структуры --------
Type Cars
Vendor As String
Model1 As String
Model2 As String
End Type

'----------- Использование --------

Sub Test()
Dim MyCars As Cars

With MyCars
.Vendor = "Ford"
.Model1 = "Fiesta"
.Model2 = "Focus"
MsgBox (.Vendor)
End With

End Sub

 

 

26. Операторы в VBA. Условный оператор: линейный (безальтернативный, альтернативный), блочный (безальтернативный, альтернативный). Структура, работа. Примеры.

 

Условный оператор

Условный оператор VBA позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса.

В VBA существует 2 типа условного оператора: линейный и блочный.

1 Линейный условный оператор используется для того, чтобы выполнить какой-либо один оператор, если некоторое условие будет истинным.

Синтаксическая конструкция линейного оператора имеет две формы: безальтернативную, альтернативную.

Структура безальтернативного условного оператора (сокращенный вариант):

If <условие> Then <оператор 1>

Структура альтернативного условного оператора (полный вариант):

If <условие> Then <оператор 1> Else <оператор 2>

где

If, Then, Else - зарезервированные слова (если, то, иначе);

<условие> - произвольное выражение логического типа;

<оператор 1>, <оператор 2> - любые операторы языка VBA.

Работа. Вначале вычисляется условное выражение <условие>. Если результат есть True (истина), то выполняется <оператор 1>, а <оператор 2> пропускается. Если результат есть False (ложь), наоборот, <оператор 1> пропускается, а выполняется <оператор 2>.

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

Структура безальтернативного блочного оператора (сокращенный вариант)

If <условие> Then

<оператор1>

<оператор2>

…………….

<оператор n>

End If

где

End If - указывает на окончание блока оператора If.

Структура альтернативного блочного оператора:

If <условие> Then

<оператор1>

<оператор2>

…………….

<оператор n>

Else

<оператор1>

<оператор2>

…………….

<оператор n>

End If

Пример 1.

Постановка задачи. Создать в стандартном модуле пользовательскую процедуру вычисления уравнения вида ax2 + bx + c = 0.

Технология выполнения задания:

1 Исходные данные:

a, b, c Î R

Результат: х1, х2 Î R.

2 Набрать в стандартном модуле проекта следующую пользовательскую процедуру:

Private Sub yravnenie ()

a = InputBox("a=", a)

b = InputBox("b=", b)

c = InputBox("c=", c)

d = b ^ 2 - 4 * a * c

If d >= 0 Then

x1 = (-b + Sqr(d)) / (2 * a)

x2 = (-b - Sqr(d)) / (2 * a)

MsgBox (x1)

MsgBox (x2)

Else

MsgBox ("Решений нет")

End If

End Sub

3 Вычислить корни квадратного уравнения при произвольных исходных данных.

Альтернативный блочный оператор If применяется в тех случаях, когда при выполнении условия необходимо осуществить один набор программных операторов, а при невыполнении – другой.

 

27. Операторы в VBA. Вложенные структуры условного оператора If: применение, формат. Конструкция If…Then…ElseIf: назначение, формат, работа. Оформление сложных условий в условном операторе. Примеры.

 

Операторы IF могут быть вложенными друг в друга. Такое вложение операторов применяется, если нужно проверить какое-либо условие при другом условии, которое является истинным.

Формат вложенного оператора If:

If <условие1> Then

If <условие2> Then

<оператор1>

<оператор2>

…………….

<оператор n>

Else

<оператор1>

<оператор2>

…………….

<оператор n>

End If

End If

Пример 2.

Постановка задачи. Создать в стандартном модуле пользовательскую функцию нахождения максимального среди трех заданных чисел y1 = a+2*b; y2 = a*b+c; y3 = c2 + 1.

Технология выполнения задания:

1 Исходные данные:

a, b, c Î R

Результат: Max Î R.

2 Набрать в стандартном модуле проекта следующую пользовательскую функцию:

Function Max(a,b,c)

y1 = a+2*b

y2 = a*b+c

y3 = c^2+1

If y1 > y2 Then

If y1 > y3 Then y = y1 Else y = y3

Else

If y2 > y3 Then y = y2 Else y = y3

End If

End Function

3 Вычислить корни квадратного уравнения при произвольных исходных данных.

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

В VBA предусмотрена конструкция для работы с несколькими операторами If. Эти операторы применяются в случаях, когда необходимо рассмотреть еще несколько условий в дополнение к исходному. Для этого служит конструкция: If…Then…ElseIf. В отличие от вложенных операторов конструкция с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие принимает значение False.

Формат записи:

If <условие1> Then

<оператор1>

ElseIf <условие2> Then

<оператор2>

Else

<.оператор3>

EndIf

Пример 3.

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

 

Таблица 15 - Правила расчета комиссионных

Объем продаж за неделю, р. Комиссионные, %
От 0 до 9999
От 10000 до 19999
От 20000 до 39999
Более 40000

Технология выполнения задания:

1 Исходные данные:

Продажи Î Z.

Результат: Комиссионные Î R.

2 Построить для расчета комиссионных в стандартном модуле пользовательскую функцию:

Function Комиссионные (Продажи)

If Продажи <= 9999 Then

Комиссионные = Продажи * 0.08

ElseIf Продажи <= 19999 Then

Комиссионные = Продажи * 0.1

ElseIf Продажи <= 39999 Then

Комиссионные = Продажи * 0.12

Else

Комиссионные = Продажи * 0.14

End If

End Function

3 Вычислить.

 

28. Операторы в VBA. Оператор выбора (переключатель): структура, работа. Примеры.

 







Последнее изменение этой страницы: 2017-01-19; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.51.69 (0.012 с.)