Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Переменные и типы данных
Переменные — это участки памяти, используемые программой для хранения данных. Каждая переменная должна иметь уникальное имя, состоящее из букв, цифр и знаков подчеркивания, причем имя переменной обязательно должно начинаться с буквы. Максимальная длина имени переменной ограничена 255 символами. Регистр букв не учитывается: x
и X
— одна и та же переменная. В качестве имени переменной нельзя использовать ключевые слова языка VBA. Запоминать все ключевые слова нет необходимости, так как в редакторе эти слова подсвечиваются. Любая попытка использования ключевого слова вместо названия переменной приведет к ошибке при компиляции.
Правильные имена переменных: x
, strName
, y1
, ИмяПеременной
.
Неправильные имена переменных: _x
, 1y
.
Типы данных
Прежде чем использовать переменную необходимо указать какие данные в ней будут храниться. На основании информации о типе данных компилятор выделяет объем памяти, необходимый для хранения данных. В VBA переменные могут содержать данные следующих типов:
Boolean
— логический тип данных. Занимает 2 байта. Может содержать только значенияTrue
(истина) илиFalse
(ложь):
Dim isOk As Boolean
isOk = True
Byte
— целые числа от0
до255
. Занимает 1 байт. Пример:
Dim n As Byte
n = 25
Integer
— целые числа от-32 768
до32 767
. Занимает 2 байта. Пример:
Dim x As Integer
x = 327
Long
— длинные целые числа. Диапазон значений от-2 147 483 648
до2 147 483 647
. Занимает 4 байта. Пример:
Dim x As Long
x = -2147483
Single
— вещественное число. Занимает 4 байта. Пример:
Dim x As Single, y As Single
x = -2.147483
y = 1.5E+32
Double
— вещественное число двойной точности. Занимает 8 байт. Пример:
Dim x As Double, y As Double
x = -321.547
y = 5.9985E-23
Currency
— числа с фиксированной точкой (четыре цифры после точки). Тип используется для хранения денежных величин. Занимает 8 байт. Пример:
Dim p As Currency
p = 2657.8795
Decimal
— десятичное масштабируемое число. Может содержать значения в диапазоне+/-79 228 162 514 264 337 593 543 950 335
или+/-7.9228162514264337593543950335
. Минимальное ненулевое значение равно+/-0.0000000000000000000000000001
. Обратите внимание на то, что объявить переменную данного типа явным образом нельзя. ТипDecimal
является подтипом типаVariant
и создается с помощью функцииCDec()
. Пример:
Dim p As Variant
p = CDec(12.4546565)
Debug.Print TypeName(p) ' Выведет: Decimal
Date
— используется для хранения даты и времени. Пример:
Dim d As Date, dt As Date
d = #8/20/2012#
Debug.Print d ' Выведет: 20.08.2012
dt = #8/29/2012 10:48:12 AM#
Debug.Print dt ' Выведет: 29.08.2012 10:48:12
String
— строки. Строки могут быть фиксированной длины и произвольной длины. При объявлении строки фиксированной длины после названия типа указывается символ*
, а затем размер:
Dim s As String * 5 ' Строка длиной 5 символов
s = "Слово"
Чтобы объявить строку произвольной длины достаточно указать только тип:
Dim s As String ' Строка произвольной длины
s = "Строка"
Object
— ссылка на объект. Занимает 4 байта. Вместо указания этого типа следует использовать названия конкретных классов. В этом случае компилятор сможет заранее получить информацию о свойствах объекта. Если указан типObject
, то информация будет доступна только в процессе выполнения программы. Чтобы присвоить значение переменной необходимо перед именем переменной дополнительно указать операторSet
. Пример сохранения ссылки на ячейку с адресомA1
:
Dim obj As Range
Set obj = Range("A1")
Variant
— может хранить данные любых типов, кроме пользовательских. Если переменная не объявлена в программе с помощью оператораDim
или тип не указан явно, то переменная по умолчанию будет иметь типVariant
. Пример:
Dim var As Variant
var = 12
Debug.Print TypeName(var) ' Выведет: Integer
var = 58.6
Debug.Print TypeName(var) ' Выведет: Double
var = "Строка"
Debug.Print TypeName(var) ' Выведет: String
var = #8/23/2012#
Debug.Print TypeName(var) ' Выведет: Date
Переменной типа Variant
можно присвоить специальное значение Null
, которое означает отсутствие значения. Результатом любой операции, в которой участвует переменная со значением Null
, будет значение Null
. Пример:
Dim var As Variant
var = Null
LongLong
. За подробной информацией по этому типу обращайтесь к документации.Помощь сайту
Yandex-деньги: 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов