Задание Описание переменных Dim имяПеременной [([индексы

advertisement
Задание
Описание переменных
Dim имяПеременной [([индексы])] [as Тип]
Необязательные скобки и параметр индексы используют для описания массива
(нумерация элементов массива начинается с 0), если в определении
переменной отсутствует конструкция as Тип - тогда переменной
присваивается тип Variant. Для создания массивов с большой размерностью, в
описании необходимо указать требуемое число индексов.
Область определения переменной определяется тем, где и как описать
переменную:
- личная переменная описывается с помощью инструкции Dim, размещенной
в процедуре;
- переменная уровня модуля описывается с помощью инструкции Dim,
размещенной в разделе описаний модуля;
- общая переменная описывается с помощью инструкции Public, а не
инструкции Dim, в разделе описаний модуля (Public UserName as String).
Типы данных
№
п/п
Тип данных
Размер
Диапазон
1
Byte
1 byte
0 .. 255
2
Boolean
2 bytes
True или False
3
Integer
2 bytes
-32,768 .. 32,767
4
Long (длинное
целое)
4 bytes
-2,147,483,648 .. 2,147,483,647
5
Single (число с
плав. точкой
4 bytes
-3.402823E38 .. -1.401298E-45 для
отрицательных значений;
одинарной
точности)
1.401298E-45 .. 3.402823E38 для
положительных значений
6
Double (число с
плав. точкой
8 bytes
двойной точности)
-1.79769313486231E308 ..
-4.94065645841247E-324 для
отрицательных значений;
4.94065645841247E-324 ..
1.79769313486232E308 для
положительных значений
7
Currency
(денежный)
8 bytes
-922,337,203,685,477.5808 ..
922,337,203,685,477.5807
8
Decimal
(десятичный)
14 bytes
+/-79,228,162,514,264,337,593,543,950,335
без дробной части;
+/-7.9228162514264337593543950335 с 28
знаками после запятой;
наименьшее ненулевое число: +/0.0000000000000000000000000001
9
Date
8 bytes
January 1, 100 .. December 31, 9999
10 Object
4 bytes
любая ссылка на объект
String
(строка
11
переменной
длины)
10 bytes +
string
0 .. около 2 биллионов
length
String
(строка
12
фиксированной
длины)
Length of
1 .. около 65,400
string
13
Variant
(с числами)
16 bytes
любое числовое значение из диапазона
Double
Variant
14
(с символами)
15
User-defined
(using Type)
22 bytes +
string
строка переменной длины
length
Number
required
by
elements
диапазон каждого входящего элемента
определяется типом элемента
Если использовать переменную, не описывая ее, то эта переменная по
умолчанию получает тип Variant. Кроме того, тип Variant можно задавать явно.
Переменные типа Variant содержат данные любого типа, исключая строки
фиксированной длины и типы, определяемые пользователем. Во многих случая
имеется возможность преобразовать один тип данных в другой и объединить
данные различных типов. При использовании типа Variant упрощается
обработка чисел.
Пример:
Dim x as Byte
Dim y as Variant
x = 100
y=x
y = y*3
В данном случает переменная y сначала рассматривается как Byte, но когда ее
значение становится больше максимально допустимого значения для Byte, она
преобразуется в целое число. Если значение переменной превышает
максимальную величину типов Double, Currency, Decimal, то возникает ошибка
выполнения: Переполнение.
Пример:
Sub LoopTest
Dim Counter as Integer
Counter = 1
While Counter <= 100
' некоторые действия
Counter = Countr + 1
Wend
End Sub
В данном случае цикл становится бесконечным, потому что из-за ошибки
программиста значение переменной Countr равно 0 (использование переменной
без объявления) и значение Counter равно 1. Для исключения подобной ошибки
можно задать в разделе описаний модуля инструкцию Option Explicit, которая
определяет явное объявление переменных. Для того, чтобы VBA автоматически
добавлял инструкцию Option Explicit в каждый проект необходимо установить
флажок Require Variable Declaration (явное описание переменных) во вкладке
Editor меню Tools/Options.
В VBA имеется группа функций для определения подтипа переменной типа
Variant:
№
п/п
Имя функции
Описание
1
isNumeric(выражение)
Возвращает значение True, если выражение
возвращает числовое значение
2
isArray(переменная)
Возвращает значение True, если переменная
является массивом
3
isDate(выражение)
Возвращает значение True, если значение
выражения можно преобразовать в значение
даты
4
isEmpty(переменная)
Возвращает значение True, если переменная
была инициализирована
5
isError(выражение)
Возвращает значение True, если выражение
представляет значение ошибки
6
isNull(выражение)
Возвращает значение True, если значение
выражения является пустым (Null)
7
isObject(идентификатор)
Возвращает значение True, если
идентификатор представляет объектную
переменную
8
TypeName(имяПеременной) Возвращает значение типа String,
представляющее тип переменной
9
VarType(имяПеременной)
Возвращает значение типа Integer,
указывающее на подтип переменной Variant
Задание собственных типов данных
Инструкция Type позволяет описать собственные типы данных, созданные на
основе стандартных.
[Private | Public] Type имяПеременной
имяЭлемента [([индексы])] as Тип
[имяЭлемента [([индексы])] as Тип]
...
End Type
Константы
[Public | Private] Const имяКонстанты as Тип = значение
Использование стандартных констант
Значения аргументов функции MsgBox()
№п/п
Константа
Значение
Описание
1
VbOKOnly
0
Отображается только кнопка OK
2
VbOKCancel
1
Отображаются кнопки OK и Отмена
(Cancel)
3
VbAbortRetryIgnore 2
Отображаются кнопки Прервать (Abort),
Повторить (Retry) и Пропустить (Ignore)
4
VbYesNoCancel
3
Отображаются кнопки Да (Yes), Нет (No)
и Отмена (Cancel)
5
VbYesNo
4
Отображаются кнопки Да и Нет
6
VbRetryCancel
5
Отображаются кнопки Повторить и
Отмена
7
VbCritical
16
Используется значок Критическое
сообщение
8
VbQuestion
32
Используется значок Предупреждающий
запрос
9
VbExclamation
48
Используется значок Предупреждение
10
VbInformation
64
Используется значок Информационное
сообщение
11
VbDefaultButton1
0
Основной является первая кнопка
12
VbDefaultButton2
256
Основной является вторая кнопка
13
VbDefaultButton3
512
Основной является третья кнопка
14
VbApplicationModal 0
Модальное окно на уровне приложения
15
VbSystemModal
Модальное окно на уровне системы
4096
Значения, возвращаемые функцией MsgBox()
№п/п
Константа
Значение
Нажатая кнопка
1
vbOK
1
ОК
2
vbCancel
2
Отмена
3
vbAbort
3
Прервать
4
vbRetry
4
Повторить
5
vbIgnore
5
Пропустить
6
vbYes
6
Да
7
vbNo
7
Нет
Download