Урок 3 по VBA — Типы данных

Урок 3 по VBA — Типы данных Макросы на VBA

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

Хотя язык VBA и VBScript происходят из одного семейства, для VBA мы можем явно указывать тип данных с помощью ключевого слова As, а в VBScript такой возможности нет. Так как поддерживаемые VBA типы данных идентичны как для Visual Basic for Applications так и для VBScript, то я решил не повторятся тут с их описанием, просто ознакомьтесь со статьей типы данных VBScript.

VBA позволяет представлять числовые значения в экспоненциальной форме, в некоторых случаях это экономит код. После символа E указывается степень десятичных знаков, например:

  • -5.43E2 – тут мы записали число -543 в экспоненциальной форме.
  • 3.4Е6 – число 3 400 000
  • 5Е9 – число 5 000 000 000

Хорошо, теперь давайте рассмотрим на примерах применение типов данных.

VBA тип данных Date

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

  • #30/12/1986# — указываем заданную дату
  • #12/30/1996 12:24:00 PM# — указываем дату и время

Или же просто прописать целое число, в этом случаем произойдет автоматическое определение даты. Редактор Visual Basic автоматически может изменять или дополнять вводимые данные, так, если мы указали время (часы и минуты) без секунд, то, произойдет автоматическое добавление секунд.

Создайте новую форму с тремя метками (объект Label) и одной кнопкой (объект CommandButton), в редакторе кода пропишите:

Sub Get_Date()
    Dim dDate_1 As Date, dDate_2 As Date, dDate_3 As Date
    dDate_1 = 12345
    dDate_2 = #12/30/1986 12:22:00 PM#
    dDate_3 = #10/5/1999#
    Label1.Caption = dDate_1
    Label2.Caption = dDate_2
    Label3.Caption = dDate_3
End Sub
 
Private Sub CommandButton1_Click()
    Call Get_Date
End Sub

Целые типы Byte, Integer и Long

Тут все предельно просто, Byte хранит целые значения от 0 до 255, Integer  — от -32 768 до 32 767, а Long  — от -2 147 483 648 до 2 147 483 647. Обратите внимание, что типы являются вложенными, то есть, Long охватывает Byte и Integer, Integer охватывает тип Long. Дело не только в диапазоне допустимых значений, но и в памяти, теоретически, данные типа Byte будут занимать 1 байт, Integer – 2 байта и Long – 4 байта памяти, но все зависит от платформы. Да и зацикливаться на этом не стоит, так как объем ОЗУ сейчас огромный, а мега программу вы и так не создадите, используя макросы.

Числа с плавающей точкой – Single и Double

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

Числа с фиксированной точкой – Currency

Это тоже вещественные значения, но, число цифр после запятой является фиксированным и составляет 4 знака.

Текстовые строки – String

В языке VBA текстовые строки заключаются в двойные кавычки. Обратите внимание, что тут нет разделения на “строка” – набор символов или “символ” – один символ. Для строк характерна возможность конкатенации (объединения) с помощью оператора &.

Логический тип Boolean

Тип данных VBA Boolean позволяет хранить логическое значение true или false. Стоит помнить, что при попытке отобразить логическое значение, хранящееся в переменной, оно автоматически преобразуется в строку и мы увидим true или false.

Variant

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

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

Object

Данный vba тип данных служит для создания ссылки на объект. С ним придется часто сталкиваться при работе с объектной моделью Microsoft Office, так как там содержится множество классов.

Помимо встроенных VBA типов данных, можно формировать и собственные, для этого служит ключевое слово Type, данный вопрос мы рассмотрим подробно в отдельной статье.

Что бы присвоить переменной 16-ричное значение, то перед ним нужно прописать &H, например, &HFF00. Как правило, 16-ричные значения используются, когда нужно задать код цвета.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий

  1. vzg

    Опечатка : Long охватывает Byte и Integer, Integer охватывает тип Long (должно быть Byte)

    Ответить