
- •Введение в vba для приложений ms office
- •1. Базовые элементы языка vba
- •1.1. Алфавит, словарь, идентификаторы
- •1.2. Типы данных
- •1.3. Переменные
- •1.4. Константы
- •1.5. Операции и операторы vba
- •1.6. Встроенные функции vba
- •1.7. Выражения
- •1.8. Приоритеты операций
- •1.9. Оператор присваивания
- •1.10. Структура программы
- •1.11. Правила оформления кода
- •2. Организация ввода – вывода данных
- •2.1. Окно сообщения. Стандартная процедура MsgBox
- •2.2. Окно ввода. Стандартная функция InputBox()
- •InputBox (сообщение [, заголовок] [, умолчание]
- •2.3. Ввод/вывод данных с/на рабочий лист Excel
- •3. Программирование линейных алгоритмов
- •4. Программирование разветвляющихся алгоритмов
- •4.1. Условный оператор If…Then
- •4.2. Условный оператор If…Then…Else
- •4.3. Условный оператор If…Then…ElseIf
- •4.4. Примеры использования оператора условного перехода If
- •5. Программирование циклических алгоритмов
- •5.1. Оператор цикла While…Wend
- •5.2. Оператор цикла For…Next
- •5.3. Табулирование функции
- •6. Литература
1.8. Приоритеты операций
Таблица 7 | |
Приоритет |
Оператор (операция) |
1 |
Вызов функции и скобки |
2 |
^(возведение в степень) |
3 |
-(смена знака) |
4 |
*, /(умножение, деление) |
5 |
\ (целочисленное деление) |
6 |
Mod (остаток от целочисленного деления) |
7 |
+, -(сложение, вычитание) |
8 |
&, +(слияние строк) |
9 |
=, <>, <, >, <=, >= (операции отношения) |
10 |
Not (логическое отрицание) |
11 |
And(логическоеИ) |
12 |
Or (логическое ИЛИ) |
13 |
Xor (исключающее ИЛИ) |
Стоящие рядом в выражении операторы умножения и деления, сложения и вычитания, а также операторы сравнения выполняются слева направо. Операторы внутри круглых скобок всегда выполняются раньше, чем операторы вне скобок. Порядок выполнения операторов, стоящих внутри скобок, определяется приоритетом операций.
1.9. Оператор присваивания
Оператор присваивания осуществляет присваивание результата вычисления некоторого выражения переменной или константе.
Синтаксис:
<идентификатор> = <выражение>
Элементы синтаксиса:
идентификатор –
бязательный. Идентификатор переменной, константы или свойства объекта, удовлетворяющий стандартным правилам именования.
выражение –
бязательный. Любое выражение, удовлетворяющее требованиям его составления.
Оператор присваивания предписывает сначала вычислить значение выражения, заданное в его правой части, и присвоить полученный результат идентификатору, имя которого указано в левой части оператора. В результате, например, действия следующих операторов присваивания
x=3
y=2+x-x^2
переменной y будет присвоено значение, равное -4.
Ограничений на тип идентификатора и выражения в операторе присваивания нет. Т.е. идентификатору может быть присвоено значение любого выражения, даже если их типы не совпадают. Исключение: значение строкового выражения нельзя присвоить идентификатору не строкового типа.
При вычислении значения выражения тип результата выбирается в зависимости от типа того компонента выражения, который позволяет получить наиболее точное значение. Затем результат полученного вычисления преобразуется в соответствии с типом идентификатора.
Порядок численных типов от наименее до наиболее точного: Byte, Integer, Long, Single, Currency.
Например, переменным
Dim x As Integer, y As Single, s As String
x, y и s соответственно целого, вещественного и строкового типа присвоим следующие значения
x=3
y=5.1
s= “Город”
С помощью оператора присваивания переопределим значения объявленных переменных.
Переменная x
x=x+1
x=y
После выполнения первого оператора присваивания значение переменной x будет равно 4, после второго – 5. Вещественное значение 5.1 округлено до ближайшего целого.
Присваивание
x=s
недопустимо. Такая инструкция приведет к аварийному завершению работы процедуры.
Переменная y
y=y+1
y=x+1
Значение переменной y после выполнения первого оператора присваивания будет равно 6.1, после второго – 4. Во втором случае результат вычисления выражения – целый, был преобразован в соответствии с типом переменной у – в вещественный тип.
Присваивание переменной у значения строкового выражения, например,
y=s
недопустимо.
Переменная s
s=y
s=x
В первом случае строковой переменной будет присвоено вещественное значение, а во втором – целое, но в обоих случаях они преобразуются в строку.