Переменные VBAПрограммирование VBA в СУБД Access 2003

RSS, Twitter, Vkontakte, Facebook

Основы программирования VBA

Переменные VBA

Автор: Владимир Ткаченко

Источник: Обучение в интернет

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

Переменные VBA могут быть объявлены или заданы как явно, так и неявно. В программе можно задавать переменные неявно, для этого переменной присваивается какое-то значение, например Y=100. Оператор присваивания "=" сохраняет численное значение 100 в ячейке памяти, заданной именем переменной Y. Для данного примера тип данных не задан. Тип данных при неявном объявлении переменной можно задать при помощи суффиксов типов данных. Суффиксы типа данных записываются непосредственно за переменной.

Для явного объявления переменных используются следующие операторы: Dim, Static, Private, Public. Обычно переменные объявляются в области видимости (действия): отдельной процедуры (локальной области), отдельного модуля, всех модулей приложения (глобальной области). Объявлять переменную можно в любом месте программы, но только один раз. Переменная объявляется до первого ее упоминания в процедуре. Но наиболее целесообразно поместить все объявления в один блок в начале процедуры либо в разделе объявлений (разделе Declarations).

Прежде чем использовать переменную, ей необходимо присвоить уникальное имя (идентификатор) и, кроме того, ее необходимо объявить с помощью одного из операторов:

  • операторы DIM или Static используются для объявления переменной (локальной переменной) в области действия или области видимости отдельной процедуры. В этом случае к переменной можно обратиться только в пределах области действия (видимости) этой конкретной процедуры;
  • операторы DIM или Private применяются для объявления переменной доступной в области действия отдельного модуля. Оператор DIM или Private помещается в разделе Declarations;
  • оператор Public служит для объявления переменной доступной в области действия всех модулей приложения (проекта). Оператор Public помещается только в разделе Declarations, и, кроме того, оператор Public должен вводиться только в стандартный модуль VBA.
Объявление локальной переменной Dim в VBA AccessОбъявление локальной переменной Static в VBA Access
Рис. 1 а. Объявление локальной переменной Dim. Рис. 1 б. Объявление локальной переменной Static.

На рис. 1а дата в формате #1 января 1951# была переформатирована VBA в следующий формат: #2/1/1951# (ММ.ДД.ГГ). На рис. 1б дата, введенная в формате #1 /2/ 2011# (ММ.ДД.ГГ), означает 2 января 2011 года (02.01.2011).

Объявление переменной Private в VBA AccessОбъявление переменной Dim в VBA Access
Рис. 2 а. Объявление переменной Private в разделе Declarations. Рис. 2 б. Объявление переменной Dim в разделе Declarations.

На рис. 2 а и 2 б представлена переменная "y", которая объявляется как целое число - Integer. Операторы Private и DIM, которые применяются для объявления переменной "y" доступной в области действия отдельного модуля, помещены в разделе Declarations.

Объявление глобальной переменной Public в VBA Access
Рис. 3. Объявление глобальной переменной доступной в области действия всех модулей приложения.

Наиболее распространенным оператором объявления переменной является оператор DIM. Необходимо отметить, что одним оператором объявления переменной можно описать произвольное число переменных, например: Dim MyVar1 As String, MyVar2 As Date

Чтобы программа работала быстрее и занимала меньше места в оперативной памяти необходимо применять явное объявление переменной. Для явного объявления всех используемых переменных, необходимо включить строку (оператор) Option Explicit в раздел объявлений в верхней части окна редактора кода (Code) модуля VBA. На рисунке 4 представлен скриншот окна редактора кода, на котором видно строку Option Explicit помещенную в разделе Declarations.

окно редактора кода в VBA Access 2003
Рис. 4.

Директива Option Explicit запрещает использование необъявленных переменных. В этом случае каждая переменная должна объявляться до ее использования. Кроме того, оператор Option Explicit помогает быстро найти ошибки в именах переменных или выявить необъявленную переменную.

Имя переменной должно удовлетворять ряду требований:

  • имя обязательно должно начинаться с буквы, а затем за буквой могут следовать цифры, буквы и символы подчеркивания;
  • имена не могут содержать символы: #, $, &, %, @, !;
  • имя не должно содержать знаков препинания (точек, запятых и т.д.) и пробелов;
  • имена не должны использовать зарезервированные ключевые слова, которые используются VBA;
  • имя не должно превышать 255 символов.

Необходимо отметить, что в именах VBA могут использоваться как строчные, так и прописные буквы, например MyVar. Кроме того, целесообразно назначать переменным осмысленные имена в соответствии с их функциональным назначением и префиксами различных типов данных и объектов.

В VBA часто переменные не объявляются или не указывается тип данных. В этом случае по умолчанию переменным будет назначен тип данных Variant. Тип данных Variant приводит к нерациональному использованию оперативной памяти ПК и к замедлению процесса выполнения программы. Variant целесообразно применять лишь в том случае, когда в одной переменной может храниться несколько типов данных.

Но для эффективного использования памяти ПК целесообразно объявлять переменные и правильно выбирать тип данных. При явном объявлении типа данных программа работает быстрее и занимает меньше места в оперативной памяти.

В VBA можно применять литеральные константы, которые записываются непосредственно в код программы и именованные константы. Именованную константу, как и переменную необходимо объявлять перед ее использованием. Целесообразно использовать только именованные константы, которые могут неоднократно использоваться в процедурах или модулях VBA.

Объявление  константы Const в VBA Access
Рис. 5.

На рисунке 5 представлен скриншот окна редактора кода, в котором видна объявленная константа Const Pi As Double = 3.14. Где константа "ПИ" объявляется как вещественное число двойной точности с плавающей точкой - Double.

Для явного объявления переменных без ключевого слова As можно применять суффиксы типов данных. Например, DIM MyType% (объявляется тип переменной MyType как целое число). В этом случае ключевое слово As не используется, а суффикс % типа переменной (для типа переменной - Integer) записывается непосредственно за переменной MyType.

Подпишитесь на мою рассылку СУБД MS Access 2003 -это просто!