logo
Информатика учебник

10.3. Объявление переменных

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

Если переменная создается (т.е. используется в операторе) без предварительного объявления (в этом случае говорят, что она объявляется неявно), то такой переменной будет присвоен тип Variant, принимаемый в языке VBA по умолчанию.

Для явного объявления переменной используется оператор Dim, с помощью которого в языке VBA резервируется область памяти, предназначенная для хранения данных указанного типа. На эту область и будет ссылаться переменная. Синтаксис оператора Dim таков:

Dim Имя_переменной [Аs Тип_данных]

Необязательная часть объявления переменной заключена в скобки [ ] и может быть опущена. Например, объявления переменных Name и Name1:

Dim Name As String

Dim Namel

В первом операторе Name — имя переменной, a String (строчный)— присвоенный ей тип данных.

Во втором операторе конструкция As String (как строчный) отсутствует, поэтому переменной Namel будет присвоен тип Variant.

П О М Н И Т Е : переменные типа Variant требуют для своего хранения гораздо б о л ь ш е памяти и работа с ними з а м е д л я е т выполнение программы. Хотя такие переменные не ограничены хранением какого-то одного типа данных, на практике ситуация, когда в одной переменной требуется хранить данные разных типов, встречается довольно редко.

В одной строке можно объявить и несколько переменных. (через запятую), при этом ключевое слово Dim задается только один раз, переменные перечисляются через запятую – каждая со своим, указанным для неё типом данных. Кроме того, в одном операторе Dim допускается смешивать объявления переменных различных типов:

Dim Name As String, TabNom As Integer

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