Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Объявление переменных
VBA поддерживает 2 способа объявления переменных: 1. Неявный - VBA создает переменную и резервирует память для ее хранения, когда эта переменная в первый раз появляется в каком-либо операторе VBA (обычно в операторе присваивания). 2. Явный - имя и тип переменной определяются до первого обращения. Явное объявление переменных предпочтительнее, так как:
Для явного объявления переменных используется оператор Dim со следующим синтаксисом: Dim < имяПеременной> [As < типДанных> ]Здесь: имяПеременной - любой допустимый идентификатор; типДанных - любой поддерживаемый VBA тип данных. Для принудительного включения явного и обязательного объявления переменных используется оператор Option Explicit. Он должен быть расположен в самом начале модуля (раздел Declarations). При неявном объявлении переменной можно задавать ее тип, добавляя в конец имени специальные символы определения типа (type definition character). Эта возможность сохранена для совместимости с устаревшими версиями языка Basic.
Пример 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
|