- •Понятие процедур, функций, операторов, переменных
- •Переменные
- •Принципы и правила выбора имен для переменных
- •Типы переменных (данных)
- •Числовой тип
- •Строковый тип (текстовая строка)
- •Тип 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
Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных
Использование только оператора Dim для объявления переменных не всегда помогает обнаруживать или предотвращать небольшие ошибки, относящиеся к неявному объявлению переменных.
Чтобы легче было в любое время обнаружить ошибки, связанные с неявным объявлением переменных, создан специальный оператор Option Explicit (режим явности). В случае его использования требуется объявление всех переменных с обязательным использованием оператора Dim.
Для установления режима явности нужно добавить команду Option Explicit в область объявлений модуля, т. е., в начало модуля (перед любыми объявлениями переменных или процедур). Например:
Option Explicit
Sub FirstMessage ( )
……
End Sub
Если случайно добавить неявное объявление переменных в этот модуль, то выдается сообщение об ошибке времени исполнения, с утверждением, что эта переменная является необъявленной.
Для того чтобы редактор VB автоматически включал оператор Option Explicit в каждый новый модуль, нужно выполнить настройку:
Tools – Option – Editor – (выбрать флажок Require Variable Declaration (требуемое объявление переменных)) – OK.
После этого VB автоматически вставляет команду Option Explicit в начало каждого нового модуля, который пользователь (или макрорекордер) вставляет в проект. Выбор опции Require Variable Declaration в окне Option влияет только на новые модули. Если необходимо запросить явное объявление переменных в существующем модуле, нужно добавить Option Explicit, редактируя каждый модуль отдельно.
Присваивание переменной (assigning the variable)
После объявления переменой в нее с помощью оператора присваивания (=) помещается какая-то информация.
Эта операция называется инициализацией переменной.
Например, Dim Счетчик As Single = 25
Dim Объявление As String = "Сегодня мы познакомились с переменными".
Всякий раз, когда создается переменная, ей по умолчанию приписывается некоторое начальное значение означающее, что в переменной "ничего не хранится":
-
строки инициализируются строками нулевой длины (" ");
-
числа инициализируются нулевым значением (0);
-
даты – значением "30 декабря 1899 года". Это значение визуализируется как #12:00:00 AM#;
-
переменные Boolean – значением False.
Если в процессе присваивания значение представляет собой цифры или текст, то это - буквальное значение. Но в операторах присваивания, кроме буквальных значений, употребляются выражения, являющиеся:
-
переменными;
-
константами;
-
функциями VB;
-
подпрограммами типа Function.
Область действия или видимости (scope - скауп) переменных
Термин "область видимости" относится к области процедуры или модуля VB, где данная переменная, процедура или другой идентификатор являются доступными. Области действия: процедурного уровня и модульного уровня.
Переменная объявляется только один раз:
-
либо в разделе объявлений модуля (модульный уровень);
-
либо в начале процедуры (процедурный уровень).
Область действия процедурного уровня: переменная, объявленная в процедуре, доступна только в этой процедуре. Поэтому говорят, что такая переменная имеет область действия процедурного уровня (procedure-level scope).
В результате, при этом ограничении области действия программист может использовать одно и то же имя переменной в разных процедурах и двусмысленности не возникает.
По умолчанию переменные локальны. При этом слово Private (локальная) работает локально точно также, как и Dim, например, в строках:
Private strProfit
Dim strProfit
Область действия модульного уровня: используется, когда несколько процедур имеют доступ к одной и той же переменной. Обычно эффективней вычислить один раз какое-либо значение и сохранить его в переменной, а затем использовать эту переменную в ряде процедур, чтобы не вычислять одно и то же значение несколько раз.
Для того чтобы переменная была доступна для всех процедур в определенном модуле, нужно поместить оператор Dim в начало модуля (в разделе объявлений), т. е. перед процедурами модуля.
Например:
Dim HelloMsg As String 'используется всеми процедурами в этом модуле
Sub HelloWorld ( )
HelloMsg = "Hello, World!"
MsgBox HelloMsg, , "Окно приветствия"
End Sub
Sub HelloDave ( )
HelloMsg = "Hello, Dave!"
MsgBox HelloMsg, , "Другое окно сообщения"
End Sub
В листинге процедур нет объявлений переменной HelloMsg, т. к. она объявлена в разделе объявлений модуля.
При написании оператора MsgBox в обоих случаях используется несколько аргументов:
-
первый – переменная HelloMsg;
-
второй – указание вида кнопки окна сообщений MsgBox. По умолчанию, если аргумент опускается, т. е., если между запятыми – пробел, то в окно встраивается просто кнопка ОК;
-
третий – заголовок окна сообщения. Он обязательно заключается в кавычки.
В скобках после имени процедуры записываются необходимые аргументы, например, имя файла, к которому относится данная процедура. По умолчанию скобки всегда присутствуют.