Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






VBA поддерживает 2 способа объявления переменных:

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

2. Явный - имя и тип переменной определяются до первого обращения.

Явное объявление переменных предпочтительнее, так как:

  • ускоряет выполнение кода;
  • уменьшается количество ошибок;
  • код становится более понятным.

Для явного объявления переменных используется оператор Dim со следующим синтаксисом:

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

Здесь:

имяПеременной - любой допустимый идентификатор;

типДанных - любой поддерживаемый VBA тип данных.

Для принудительного включения явного и обязательного объявления переменных используется оператор Option Explicit. Он должен быть расположен в самом начале модуля (раздел Declarations). При неявном объявлении переменной можно задавать ее тип, добавляя в конец имени специальные символы определения типа (type definition character). Эта возможность сохранена для совместимости с устаревшими версиями языка Basic.

 

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

Пример 1.

Sub VariantDemo1()

'Явное объявление переменных

Dim MyVar1 As String, MyVar2 As Integer

MyVar1 = " Это строка"

MyVar2 = 123

MsgBox MyVar1 & " " & MyVar2

End

Пример 2.

Sub VariantDemo2()

MyVar = " 123"

MyVar = MyVar / 2

MyVar = " Ответ: " & MyVar

MsgBox MyVar

End Sub

При обработке типа данных Variant могут возникнуть проблемы.

Пример 3. Какое сообщение выдаст следующая процедура?

Sub VariantDemo3()

MyVar = " 123"

MyVar = MyVar + MyVar

MyVar = " Ответ: " & MyVar

MsgBox MyVar

End Sub

Функция определения типа данных

Для определения типа данных переменной используется функция VBA TypeName.

Пример 1.

Sub VariantDemo2()

MyVar = " 123"

MsgBox TypeName(MyVar)

MyVar = MyVar / 2

MsgBox TypeName(MyVar)

MyVar = " Ответ: " & MyVar

MsgBox TypeName(MyVar)

MsgBox MyVar

End Sub

Тестирование явного объявления типов данных

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

Sub TimeTestU

Dim x As Integer, у As Integer

Dim A As Integer, В As Integer, С As Integer






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.