Объявление переменныхДля указания типа переменной используются операторы объявления с, например, следующим синтаксисом: Dim variablename [ As type ] Здесь variablename — имя объявляемой переменной, type — тип данных. Переменные, объявленные с помощью оператора Dim внутри процедуры, существуют только во время выполнения этой процедуры. Такие переменные называются локальными. В различных процедурах можно использовать локальные переменные с одинаковыми именами. Примеры объявления переменных: Dim stName1 As String Dim inName2, inName3 As Integer Переменные объявляются также в разделе объявлений формы, стандартного или модуля класса, что делает их доступными для всех процедур в модуле. Для того чтобы переменная была доступна процедурам всего приложения, вместо слова Dim следует использовать Public. Переменную необязательно объявлять. В тестовых примерах и небольших приложениях, где не ставится задача оптимизации кода, можно использовать переменные без их предварительного объявления. Function ToMorrow() ToDay = Now() ToMorrow = ToDay + 1 End Function Этот способ использования переменных без предварительного объявления очень прост, но потенциально опасен тем, что вы можете делать ошибки, которые трудно находить. Дело в том, что при использовании переменных без предварительного объявления вы не пользуетесь средствами контроля редактора Visual Basic. Если вы объявили переменную и в дальнейшем в каком-либо операторе изменили (по ошибке) регистр какого-нибудь символа, редактор автоматически изменит написание переменной на объявленое. При этом уже нет необходимости вам постоянно переключаться с регистра на регистр. Можно работать с одним регистром. Редактор сам будет изменять регистры в соответствии с объявленным написанием переменной. Если же вы не объявите переменную и постоянно при ее написании будете произвольно менять регистры, редактор будет менять написание всех вхождений переменной в соответствии с последним написанием. Если это вас утраивает — нет проблем. Explicit-объявление Работая в редакторе Visual Basic, вы можете задать такой режим, при котором у вас не будет возможности использовать ранее необъявленные переменные. Таким образом, если вы случайно введете имя переменной с ошибкой, это будет воспринято системой, как попытка использовать ранее небъявленную переменную, и при компиляции появится сообщение об ошибке (см. рис. 5.6). Рис.5. 6 При наличии объявленияOption Explicit попытка использовать ранее небъявленную переменную приводит к сообщению об ошибке. В окне редактора, приведенном на рис. 5.6, самая первая строка содержит оператор Option Explicit. Именно этот оператор является сигналом для проверки вашего кода на наличие имен переменных, которые вы забыли объявить. Вы можете вставить в модуль этот оператор самостоятельно, просто вводя его с клавиатуры, как обычный текст. Но в этом случае вам нужно будет выполнять эту операцию для каждого нового модуля. Если вы хотите, чтобы оператор Option Explicit автоматически вставлялся в каждый ваш модуль, выпоните следующее: · Из меню Tools выберите Options. · Щелкните на ярлычке вкладки Editor. · Установите флажок Require Variable Declaration. Для объявления переменных, кроме оператора Dim, можно использовать также операторы Private, Public и Static. Например: Private inI As Integer Public cuSell As Currency Static stMyName As String Private inII As Integer, doSq As Double Область действия переменной Область действия (scope) переменной — одно из наиболее важных понятий в программировании. Переменная может быть доступна не для всего кода приложения (не для всех модулей), не для всех процедур одного и того же модуля. Область действия переменной определяется способом ее объявления. В зависимости от того, как объявлена переменная, она может иметь область процедурного (локальная) или модульного уровня.
Переменные процедурного уровня «распознаются» только в процедуре, в которой они объявляются. Они также называются локальными. Такие переменные объявляются при помощи ключевых слов Dim и Static. Например: Dim intNunber As Integer Static intPrt As Integer Значение локальной переменной, объявленной с помощью Static, сохраняется все время работы приложения. С другой стороны, локальная переменная, объявленная с помощью Dim, существует только во время выполнения процедуры, в которой объявлена переменная. Локальные переменные необходимы для всяких временных вычислений или удобного представления длинных арифметических выражений. Как только процедура с локальными переменными выполнится, память будет освобождена от локальных переменных. По умолчанию переменная модульного уровня доступна всем процедурам модуля. Переменные модульного уровня объявляются с использованием ключевого слова Private в разделе Declarations в верхней части (в начале текста кода) модуля. Например: Private strTemp As String Private intTemp As Integer На модульном уровне ключевые слова Private и Dim имеют одинаковое действие, но Private предпочтительней, поскольку, контрастируя со словом Public, делает код более понятным. Чтобы сделать переменную доступной для всех модулей, используйте при объвлении переменной ключевое слово Public. Значения таких переменных доступны всем процедурам приложения. Как и переменные модульного уровня, public-переменные объявляются в секции Declarations в верхней части модуля. Нельзя объявлять public-переменные в коде процедуры. Например: Public intTemp As Integer Имена переменных, объявленных с помощью ключевого слова Public в различных модулях, могут совпадать. В этом случае для правильной ссылки на переменную следует использовать не только ее имя, но и имя модуля. Например, если public-переменная strFirstName типа String объявлена как в модуле ModuleStart, так и в модуле формы FormMain, то для правильной ссылки на эти (их теперь — две) переменные следует использовать выражения ModuleStart.strFirstName и FormMain.strFirstName.
|