Именно последнее дает возможность создавать программы, автоматически реагирующие на изменение условий, поскольку программа может при необходимости проверить информацию, содержащуюся в переменной, и выяснить, удовлетворяет ли эта информация заданным вами критериям. Если критерии удовлетворяются, программа выполняет одни операторы, а если нет. то другие.
Строго говоря, переменная (т.е. контейнер для информации) и хранящаяся в этой переменной информация - это не одно и то же. Однако, наверное, найдется не слишком много людей, которые часто употребляют фразы типа информация, представляемая переменной х. Вполне привычно ссылаться на информацию просто по имени переменной, имея при этом в виду, что эта информация может меняться.
Как уже говорилось в главе 6, объявление - это VBA-оператор, с помощью которого вы сообщаете компилятору о своих намерениях использовать именованный объект и явно описываете тип этого объекта. Операторы объявлений чаще всего используются для объявления переменных. Вот несколько примеров объявления переменных:
Dim varAnyOldVariable
Private intIntegerVariable As Integer
Static strNewYearsResolution As String
Обычно в объявлениях используется ключевое слово Dim, возникшее как сокращение от слова Dimension (размер), но как глагол в том смысле, что оператор Dim задает в VBA пространство для хранения данных, на которое будет ссылаться переменная. Точно так же для объявления переменных можно использовать ключевые слова Private, Public и Static:, тем самым сразу объявляя и область видимости таких переменных (подробности ниже, в разделе Задание области видимости переменной, а также в главе 6).
После объявления переменной ее можно использовать в других частях программы. Как правило, сначала с помощью оператора присваивания в переменную помещается некоторая информация (подробно об этом - ниже, в разделе Размещение информации в переменных). Потом эту информацию можно будет извлечь (используя имя переменной) в любой другой части программы.
Объявить переменную можно в двух частях программы:
* в разделе объявлений модуля (на уровне модуля).
* внутри любой процедуры (на уровне процедуры).
От места объявления зависит, какие процедуры смогут получить доступ к переменной, т.е. от места объявления переменной зависит ее область видимости. Если переменная объявляется на уровне модуля, использовать переменную сможет любая процедура в данном модуле. Если переменная объявляется внутри некоторой процедуры, переменной можно будет пользоваться только внутри этой процедуры. Для назначения области видимости можно использовать также ключевые слова Private, Public и Static. (Области видимости мы уже обсуждали в главе 6 и еще остановимся на них ниже, в разделе Задание области видимости переменной,)
Хотя VBA и не возражает против того, чтобы между объявлениями в процедуре размешались выполняемые операторы, программный код будет восприниматься проще, если поместить все объявления в самое начало процедуры. Вот образец правильного размещения операторов внутри процедуры:
Public Sub VariableProcedures ( )
Dim strChildsName As String
Dim intToyCount As Integer
Dim curAllcwance As Currency
strChildsName = inputBox(Введите имя ребенка:)
‘ в следующих двух строках CountToys 11 NewAllowance
' представляют процедуры типа Function, определенные
' где-то в другой части программы
intToyCount = CountToys(strChildsName)
curAllowance = NewAllowance(strChildsName, intToyCount)
End Sub
Когда объявлять переменные
Все эксперты, как один, рекомендуют объявлять переменные заранее, а не там, где они должны первый раз использоваться в программе. Один из очевидных аргументов в пользу этого - упрощение программного кода. Другие аргументы начинают работать, когда используется директива Option Explicit для компилятора, которая будет обсуждаться ниже, в разделе Явные объявления приветствуются.
Правда, по умолчанию VBA не запрещает использование переменных без предварительного их объявления. Если где-нибудь в программе вы напечатаете А = 7, VBA добросовестно создаст переменную с именем А и поместит в нее значение 7. Переменные, которые вы создаете без предварительного объявления, автоматически получают тип Variant, который будет рассмотрен в следующем разделе.
Выбор и использование типов данных
В объявлении переменной можно просто указать ее имя. Следующий оператор дает указание VBA выделить пространство для переменной с именем variable, но не указывает, информацию какого типа будет эта переменная хранить:
Читать дальше