Переменные, константы и типы данных




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

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

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

Dim <имяПеременной> [As <типДанных>]

В VBA действуют следующие правила именования переменных.

1. Имя не может быть длиннее 255 символов.

2. Имя должно начинаться с буквы, за которой могут следовать буквы, цифры или нижняя черта.

3. Имя не должно содержать пробелов, знаков препинания или специальных символов, за исключением самого последнего знака.

4. В конце к имени переменной может быть добавлен один из следующих шести специальных символов — описателей типа данных:!, #, $, %, &, @. Эти символы не являются частью имени переменной, т.е. если в программе используются одновременно имена string1$ и string1, то они относятся к одной и той же строковой переменной. Нельзя использовать одно и то же имя переменной с разными символами определения типа данных или одновременно явное описание типа данных и не соответствующий этому типу данных специальный символ.

5. Не допускается использование в качестве имен переменных ключевых слов VBA и имен стандартных объектов.

6. Допускается использование в именах переменных букв не только латинского алфавита, но и кириллицы.

Пример 1. Описание переменных:

Dim i As Integer, j As Integer

Dim x As Double

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

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

Присвоение значения переменной осуществляется посредством оператора присваивания, в котором слева указывается имя переменной, а справа — присваиваемое значение или выражение:

Номер = 1

Город = "Новые Васюки"

Температура = 5.9

Синус = Sin (1.3)

Коэффициент =234 /4 *0.5

Если при явном объявлении переменной не указан тип данных, а заданы оператор Dim и ее имя, будет создана переменная типа Variant, которой можно присваивать цепочки символов, числа с плавающей точкой, а также значения даты и времени (совершенно разные типы данных).

Работа с данными типа Variant имеет существенный недостаток: постоянное отслеживание типа хранимого значения занимает много машинного времени. Для сокращения времени, необходимого для выполнения программы, все используемые переменные надлежит декларировать явно, задавая один из стандартных типов данных: Boolean (Логический), Byte (Целое положительное число от 0 до 255), Integer (Целое число от -32768 до 32767), Long (Целое число двойной длины), Single (Число с плавающей точкой), Double (Число с плавающей точкой двойной точности), Currency (Число с фиксированной точкой используется для проведения денежных расчетов), Date (Дата), String (Строковое значение), Object (для хранения ссылок на объекты).

Для определения типа данных аргументов процедуры или функции используется описание типа данных непосредственно в их заглавной строке. Например, заглавная строка процедуры, описывающей параметры как переменные строкового типа, имеет вид:

Sub SplitStr(strl As String, str2 As String, str3 As I String)

Определение типа данных возвращаемого функцией значения завершает заглавную строку функции, например, выражение

Function FindSplitSpace (strl As String) As Integer

описывает возвращаемое функцией значение как переменную короткого целого типа.

Для описания констант используется оператор Const, схожий с оператором описания переменных Dim. Синтаксис этого оператора имеет вид

Const <имяКонстанты> [As <типДанных>] = <выражение>

Здесь <выражение> — это любое значение или формула, возвращающие значение, которое должно использоваться в качестве константы. Например, оператор, определяющий целую константу maxLen, имеет вид

Const maxLen% = 30

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

Кроме описываемых пользователем констант существуют еще предопределенные встроенные константы, которые используют в тексте программ без предварительного описания. При именовании встроенных констант используется стандартное соглашение, позволяющее определить, к объектам какого приложения они относятся: имена встроенных констант, относящихся к объектам Access, начинаются с префикса ас, относящихся к объектам Еxcel — с префикса xl, относящихся к объектам Word — с префикса wd, а относящихся к объектам VBA — с префикса vb.

Например, в команде

DoCmd.OpenForm "Заказы", acNormal,, stLinkCriteria

используется встроенная константа Access acNormal.

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

Для использования переменной объекта нужно не только объявить такую переменную, но и перед ее использованием назначить ей соответствующий объект с помощью специального оператора Set. Синтаксис такого объявления и назначения имеет вид

Dim <имяПеременной> As Object

Set <имяПеременной> = <ссылкаНаОбъект>

Иногда при объявлении такой переменной удобно заранее указать конкретный тип объекта, для чего можно использовать любой конкретный объект из объектной модели Office. Например:

Dim MyBase As Database

Set MyBase = DBEngine.Workspaces(0).Databases(0)

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: