- •Понятие процедур, функций, операторов, переменных
- •Переменные
- •Принципы и правила выбора имен для переменных
- •Типы переменных (данных)
- •Числовой тип
- •Строковый тип (текстовая строка)
- •Тип Date (дата)
- •Логический тип
- •Произвольный тип
- •Объектный тип
- •Создание переменных
- •Объявление переменной (variable declaration)
- •Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных
- •Присваивание переменной (assigning the variable)
- •Область действия или видимости (scope - скауп) переменных
- •Использование переменных с одним и тем же именем в различных уровнях области действия
- •Правила того, как долго переменные удерживают свое значение
- •Константы
- •Создание именованных констант
- •Область действия констант
- •Написание констант
- •Операции и знаки операций
- •Получение приоритета:
- •Преобразование типов данных. Процедуры и функции. Типы операторов. Состав проекта Назначение типов данных
- •Преобразование типов данных
- •Преобразование числовых типов данных
- •Строковые переменные
- •Строки изменяемой и фиксированной длины
- •Преобразование числовых данных в строковые
- •Форматирование данных
- •Процедуры и функции
- •Аргументы
- •Примеры процедур
- •Функции
- •Обзор типов операторов
- •Операторы объявления
- •Операторы присваивания (инициализации)
- •Выполняемые операторы
- •Параметры компилятора
- •Состав проекта
- •Массивы. Классы объектов. Характеристики объектов. Объектная модель. Окно просмотра объекта. Комментарии. Управление потоком Массивы
- •Статические массивы
- •Динамические массивы
- •Пример работы с массивом
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Инкапсуляция
- •Семейства объектов
- •Объектная модель
- •Использование Окна просмотра объектов
- •Замечания о комментариях
- •Управление потоком
- •Управление потоком (продолжение). Условные переходы. Циклы. Оператор With. Немедленный выход с помощью оператора Exit For Оператор Go to Примеры работы с двоичной логикой
- •Операторы условного перехода:
- •Оператор условного перехода If…Then
- •Пример использования условного перехода If…Then
- •Оператор условного перехода If…ElseIf
- •Оператор Select Case
- •Операторы циклов:
- •Повторение под управлением цикла For…Next
- •Пример вложенных циклов For…Next
- •Важные замечания по поводу циклов For…Next
- •Использование оператора цикла For Each… Next
- •Циклы Do…Loop
- •Типы оператора цикла Do…Loop
- •Пример оператора Do While (условие) Loop
- •Использование оператора Do …Until Loop (условие)
- •Использование оператора With
- •Использование оператора Is
- •Немедленный выход с помощью оператора Exit For
- •Управление потоком с помощью оператора Go To
- •«Ввод-вывод данных. Системные функции InputBox и MsgBox» Функции InputBox и MsgBox
Создание именованных констант
При выборе имени константы следует соблюдать те же правила, что и при создании переменных. Необходимо объявлять именованную константу перед ее использованием. Однако в отличие от переменной необходимо всегда явно объявлять константу и при объявлении константы использовать ключевое слово Const.
При использовании именованных констант упрощается код программы, их можно легко заменить всего в одном месте, где их объявляют.
Примеры объявлений констант:
Const cstrName As String = "Пушок"
Const cdatTargetDate As Date = #5/26/2000#
Const cboolUp As Boolean = True.
Область действия констант
Именованная константа, объявленная на процедурном уровне, так же, как и в случае переменной, имеет область действия процедурного уровня, а в области объявлений модуля – модульного уровня. Поэтому для исключения дублирования следует помещать объявления констант на модульном уровне, чтобы у них была наибольшая область действия.
Const Pi = 3,14
Dim CircleArea As Single
Sub Calc_CircleArea ( )
Dim Radius As Single
Radius = 5
CircleArea = Pi * (Radius * Radius)
MsgBox CircleArea, , "Area of Circle"
End Sub
Строка 1 листинга объявляет константу модульного уровня Pi, которая представляет приближение числа π.
Переменная CircleArea также объявляется на уровне модуля, чтобы значение, вычисленное в процедуре Calc_CircleArea, было доступно для других процедур модуля.
Написание констант
При присваивании именованным константам значений используются литеральные константы, поэтому следует знать правила их написания. Существует несколько правил при написании литеральных констант типа String, Integer, Date, Boolean.
Константы String:
-
Строковые константы должны быть заключены в двойные кавычки (например, "25.67").
-
Пустая строковая константа (null string или empty string) обозначается двумя двойными кавычками с пробелом (" ").
-
Строковая константа должна находиться на одной и той же строке. Нельзя использовать символ продолжения строки (_) для продолжения литеральной константы.
Численные константы (любой из численных типов):
-
Должны состоять только из числовых символов от 0 до 9.
-
Численная константа может начинаться со знака (-) и может содержать десятичную точку.
-
Можно использовать экспоненциальное представление. Никакие другие символы или знаки в численных константах не допускаются. Примеры написания: 12; -14.3; 6.6E+02.
Константы Date
Эти константы нужно размещать между знаками фунта (#). Примеры:
#2-5-97 21:17#
#February 5, 1997 9:17pm#
#Mar-31-97#
#15 April 1997#
VB переформатирует эту константу для соответствия одному из двух следующих форматов, в зависимости от того, содержит ли константа Date информацию о времени:
#2/5/97 9:17:00 PM#
#2/5/97#
Нельзя заключать константу Date в кавычки, чтобы VBA не интерпретировал дату как строковую константу.
Константы Boolean
Существуют только две константы: False и True. Кавычки при этом не используются, слова пишутся полностью.
Операции и знаки операций
В VB используются следующие операции:
-
арифметические;
-
конкатенация;
-
сравнения;
-
логические.
Арифметические операции (математические операторы) - это всего 7 знаков: помимо 4-х основных: +; -; *; / имеются еще 3 дополнительных математических оператора:
^ - возведение в степень;
\ - целочисленное деление;
mod - первое значение тоже делится на второе, но в качестве результата получаем остаток от деления как целое число. Если же нужно узнать дробную часть от деления, то нужно применить операцию деления на модуль, например, 244 mod 7 (получаем количество дней в оставшейся неполной неделе). При этом остаток деления возвращается как целое число:
244 mod 7 = 6
Если теперь выполнить операцию деления на 7, то можно получить результат в десятичной форме: 244 Mod 7 / 7 = 6/7 или 244 Mod 7 / 7 = 0,857.
5.1 mod 3 = 2.
Конкатенация или сцепление строк - это оператор &.
Сравнение значений (6 операций для сравнения числовых и строковых значений и 2 специальные операции Like (для строк) и Is (для объектов).
Результатом вычисления выражения, основанного на операциях сравнения всегда является True или False.
Операторы:
= (равенство); < (меньше, чем); <= (меньше, чем или равно);
> (больше, чем); >= (больше, чем или равно); <> (не равно).
Оператор Like (подобие). Оба операнда должны быть значениями String. Если Е1 совпадает с образцом, содержащимся в Е2, то True).
Оператор Is. Оба операнда должны иметь тип Object. Если Е1 ссылается на тот же самый объект, что и Е2, то True.
Логические операции:
And (конъюнкция: Е1 And Е2). Если имеют значение и Е1, и Е2 , то True;
Or (дизъюнкция: Е1 Or Е2). Если имеется Е1 или Е2 или оба, то True;
Not (отрицание: Not Е1). Если Е1 имеет значение, то False, если Е1 отсутствует, то True;
Eqv (логическая эквивалентность: Е1 Eqv Е2). Если Е1 эквивалентно Е2, то True;
Xor (исключающее ИЛИ): Е1 Xor Е2). Если имеется только Е1 или только Е2, то True;
Imp (импликация: Е1 Imp Е2). Если Е1 – False, а Е2 – True, то False. В остальных случаях – True.
Исключающее ИЛИ Импликация (вовлечение)
E1
E2
E1
E2