Long vba excel — Мир ПК

Типы данных Visual Basic

Visual Basic for Applications может управлять различными типами данных. Как и в большинстве других систем программирования Visual Basic разделяет обрабатываемые данные на числа, текст, даты и другие типы. Ниже будут приведены описания основных типов данных VBA, а также будет показан объем памяти занимаемый каждым типом и диапазоны значений, которые эти типы могут сохранять.

Типы данных для хранения целых чисел

Для хранения целых чисел используется один из трех численных типов данных.

Байт — это единица измерения компьютерной и дисковой памяти, состоящая из восьми битов или двоичных разрядов. Обычно один алфавитный символ требует для хранения одного байта памяти.

Тип данных Byte используется для хранения положительных чисел от 0 до 255 и занимает 1 байт памяти.

Integer

Integer — это целое число, число, не имеющее дробной части. Целые числа не содержат десятичного знака, даже если дробная часть равна нулю.

Тип данных Integer используется для хранения чисел от -32768 до 32767 и требует 2-х байтов памяти.

Long — длинное целое число.

Тип данных Long используется для хранения чисел от -2147483648 до 2147483647 и требует 4-х байтов памяти.

Типы данных для хранения дробных чисел

Для хранения чисел, имеющих дробную часть используются типы данных с плавающей и с фиксированной точкой. Числа с плавающей точкой получили свое название вследствие того, что десятичная точка «плавает» в зависимости от того, насколько большое или маленькое значение сохраняется в памяти. VBA имеет два различных типа данных с плавающей точкой и один с фиксированной.

Single

Числа, сохраняемые с использованием типа Single, называют числами одинарной точности.

Тип данных Single используется для хранения отрицательных чисел от -3,402823*10 38 до -1,401298*10 -45 , положительных чисел от 1,401298*10 -45 до 3,402823*10 38 и требует 4-х байтов памяти.

Double

Числа, сохраняемые с использованием типа Double, называют числами двойной точности.

Тип данных Double используется для хранения отрицательных числел от -1,79769313486232*10 308 до -4,94065645841247*10 -324 , положительных от 4,94065645841247*10 -324 до 1,79769313486232*10 308 и требует 8-и байтов памяти.

Currency

Тип данных Currency используется для хранения чисел от -922337203685477,5808 до 922337203685477,5807 и требует 8-и байтов памяти.

Этот тип данных используется для хранения чисел с фиксированной точкой, десятичная точка всегда находится в одном и том же положении, справа от десятичной точки всегда имеется только четыре цифры. Числа типа Currency не имеют ошибок округления, используются при «денежных» вычислениях.

Типы данных для хранения дат, текстовых строк и логических значений

Тип данных Date использует 8 байтов памяти для хранения дат и времени.

String

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

Тип данных String (переменной длины) используется для хранения текста с количеством символов от 0 до 2 миллиардов и требует памяти в размере 10 байт+один байт на один символ.

Тип данных String (фиксированной длины) используется для хранения текста с количеством от 1 до 654000 символов и требует памяти в размере один байт на один символ.

Boolean

Логические значения True и False называют булевыми значениями. Булевы значения получают как результат операций сравнения.

Тип данных Boolean может иметь одно из двух значений True или False и требует 2-х байтов памяти.

Типы данных Variant и Object

Variant

Тип данных Variant — это особый тип данных, который используется для всех переменных с необъявленным явно типом. Не смотря на то, что типы Variant удобны, они требуют большого объема памяти, а математические операции и операции сравнения над данными этого типа выполняются медленнее.

Тип данных Variant может хранить любой тип данных, за исключением типа Object. Диапазон для данных этого типа зависит от фактически сохраняемых данных и требует памяти в размере 16 байт + 1 байт на символ.

Object

Тип данных Object используется для доступа к любому объекту, распознаваемому VBA. Сохраняет адрес объекта и требует 4-х байтов памяти.

Типы данных VBA

Типы данных — это определенные виды данных, которые VBA сохраняет и может манипулировать.

Читать еще:  Как прописать функцию в excel

Тип Date

VBA использует тип Date для хранения дат и времени.

При работе с этим типом данных следует иметь ввиду, что VBA-типы Date не являются такими же типами, как в рабочих листах Excel, хотя во многом и схожи с ними. Например, базовой датой для VBA-типа Date является 30 декабря 1899 года, а в Excel — 1 января 1900 года.

VBA-тип Date является типом последовательных дат. VBA использует отрицательные числа для представления дат ранее базовой даты (30 декабря 1899), и положительные — для дат после базовой. Число 0 представляет саму дату 30.12.1899.

В значении последовательной даты целая часть — это общее число дней от базовой даты. Дробная часть (цифра справа от десятичного знака) — эти цифры обозначают время дня как часть дня. Один час — это 1/24 дня, одна минута — 1/1440 дня, секунда — 1/86400 дня.

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

Числа

VBA имеет шесть различных численных типов данных: Byte, Integer, Long, Single, Double, Currency.

Они используются для хранения чисел в различных форматах, в зависимости от конкретного типа.

Целые числа

Integer — это целое число без дробной части (целые числа никогда не содержат десятичного знака, даже если десятичная часть равна нулю).

VBA предоставляет три типа целых данных: Byte, Integer, Long.

Byte — наименьший из трех типов целых данных, предназначен для хранения числе от 0 до 255. Этот тип обычно используют для хранения двоичных данных.

Integer использует диапазон целых чисел от -32768 до 32767.

Long использует диапазон целых чисел от -2147483648 до 2147483647.

Byte, Integer, Long типы требуют меньше памяти для хранения чисел, чем другие численные типы данных VBA, а математические операции и операции сравнения над числами указанных типов быстрее, чем эти же операции для численных типов данных с плавающей точкой.

VBA автоматически преобразует данные типов Byte, Integer, Long в текст, когда они выводятся на экран, используя такие процедуры, как MsgBox.

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

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

VBA имеет два типа данных с плавающей точкой: Single, Double.

Single используется для хранения:
отрицательных чисел от -3,402823*10 38 до -1,401298*10 -45
и положительных от 1,401298*10 -45 до 3,402823*10 38 .
Числа, хранимые с использованием типа Single, называются числами одинарной точности.

Double используется для хранения:
отрицательных чисел от -1,79769313486232*10 308 до -4,94065645841247*10 -324
и положительных от 4,94065645841247*10 -324 до 1,79769313486232*10 308 .
Числа, хранимые с использованием типа Double, называются числами двойной точности.

Следует иметь ввиду, что операции, выполняемые над числами с плавающей точкой, немного медленнее подобных операций над другими численными типами данных. Кроме того, числа, хранимые как типы данных с плавающей точкой, могут быть подвержены ошибкам округления. Если число с плавающей точкой очень большое или очень малое, VBA отображает его в экспоненциальном представлении.

В экспоненциальном представлении значения записываются без начальных и конечных нулей, и слева от десятичного знака имеется только одна цифра. Число умножается на 10 в некоторой степени, чтобы показать, где на самом деле находится десятичный знак. Следует помнить, что отрицательная степень приводит в результате к меньшему числу, а положительная — к большему. Вместо надстрочного символа показателя степени используется буква Е:
4.1Е3=4100
2.01Е-2=0.0201

Тип данных Currency

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

Currency хранит числа в диапазоне от -922337203685477,5808 до 922337203685477,5807.

Читать еще:  Entirerow vba excel описание

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

Любые текстовые данные, сохраняемые в VBA, называются строками. Для их хранения предназначен тип данных String.

Строка может содержать текстовые символы любых типов: буквы, цифры, знаки пунктуации, разделительные символы и пр.

Строки всегда заключаются в двойные кавычки.

Существует две категории строк: строки переменной длины и строки фиксированной длины. По умолчанию в VBA все строки переменной длины.

Следует сказать, что тип данных String является очень важным типом, т.к., как правило, информация, вводимая пользователем — это строковые данные. Кроме того, поскольку на экране монитора отображается только текст, то все другие типы данных должны быть преобразованы в строковые данные перед выводом на экран.

Логические значения

VBA-программа принимает то или иное «решение», основываясь на различных условиях. Любое условие может принимать два значения: True (Истина) или False (Ложь). Логические значения True и False называются булевскими значениями, а тип данных — Boolean.

Булевские значения получают как результат операции сравнения. Операции сравнения имеет место при сравнении одного с другим, например, при сравнении двух чисел для определения, которое из них больше.

Тип данных Variant

Это особый тип данных, который может сохранять любые типы, за исключением типа Object. VBA использует этот тип данных для всех переменных, если только они не объявлены явно.

Данные типа Variant принимают характеристики определенного типа, который они сохраняют в данный момент. Например, если данные типа Variant содержат строковые данные, Variant принимает характеристики типа String. VBA использует для данных типа Variant наиболее компактное представление, возможное для конкретных значений, находящихся в данных.

Несмотря на то, что типы Variant удобны и избавляют от некоторой части работы при написании кода, они требуют большего объема памяти, чем любой другой тип данных, за исключением больших строк. Кроме того, математические операции и операции сравнения над данными типа Variant выполняются медленнее, чем подобные операции над данными любого другого типа. Следует избегать использования переменных Variant.

Подведем итог вышесказанному:

Тип данных

Описание и диапазон значения

Хранение положительных чисел от 0 до 255

Хранение логических значений: True, False

Хранение чисел для точных вычислений в диапазоне
от -922337203685477,5808 до 922337203685477,5807

Хранение даты и времени.
Даты от 1.01.100 до 31.12.9999
Время от 00:00:00 до 23:59:59

Хранение чисел двойной точности
от -1,79769313486232*10 308 до -4,94065645841247*10 -324
от 4,94065645841247*10 -324 до 1,79769313486232*10 308

Хранение целых чисел от -32768 до 32767

Хранение целых чисел от -2147483648 до 2147483647

Хранение чисел одинарной точности
от -3,402823*10 38 до -1,401298*10 -45
от 1,401298*10 -45 до 3,402823*10 38

Хранение текста длиной до 2 млрд. символов

Хранение любого типа данных

В начало страницы

В начало страницы

Канал в Telegram

Вы здесь

Типы данных в Visual Basic (VBA)

Все типы в VB можно разделить на несколько групп:

  • Целочисленные
  • Вещественные
  • Строковый (текстовый)
  • Логический
  • Дата
  • Неопределенный
  • Объект

Целочисленные типы данных

К этой группе относятся все данные только целого типа. Диапазон зависит от выбранного типа (см. таблицу).

Тип

Диапазон

Описание

Этот тип данных хранит положительные целые числа до 255. Занимает памяти 1 байт (8 бит).

Integer

от -32768 до 32767

Этот тип данных позволяет хранить как отрицательные, так и положительные целые числа. Требует памяти 2 байта (16 бит)

от -2147483648 до 2147483647

Самый длинный целочисленный тип. Хранит как отрицательные, так и положительные целые числа. Памяти требует 4 байта (32 бита)

Вещественные типы данных

К этой группе относятся данные содержащие дробную часть. Так же возможно использование этих типов для хранения целых чисел. Но целыми они будут только внешне, при этом памяти «кушать» больше.

Тип

Диапазон

Описание

Single

от -3,402823*10 38 до
-1,401298*10 -45
и
1,401298*10 -45 до 3,402823*10 38

Числа с одинарной точностью. Требуют памяти 4 байта (32 бита)

Double

От -1,79769313486232*10 308 до -4,94065645841247*10 -324
и
от 4,94065645841247*10 -324 до 1,79769313486232*10 308

Числа с двойной точностью. Требуют памяти 8 байт (64 бита)

Currency

от -922337203685477,5808 до 922337203685477,5807

Числа с фиксированной точностью. После запятой всегда 4 знака. Числа этого типа не имеют ошибок при округлении. Подходит для денежных вычислений. Требует памяти 8 байт (64 бита)

Читать еще:  Бесплатные уроки excel для начинающих

Строковый (текстовый) тип данных

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

String переменной длины позволяет хранить текстовые данные от 0 до 2147483648 символов и требует памяти один байт на один символ т.е. при максимальном размере 2048мб.

String фиксированной длины позволяет хранить до 65536 символов т.е. 64Кб

Логический тип данных

К логическому типу относится тип Boolean. Хранит всего два значения 0 и 1 (TRUE и FALSE). Требует 2 байта памяти. Любые логические операции используют данные этого типа.

Тип данных дата

Тип Date позволяет хранить дату в диапазоне с 1 января 100 года по 31 декабря 9999 и время от 0:00:00 до 23:59:59. Требуется памяти 8 байт.

Неопределенный тип данных

К неопределенному типу относится тип Variant. Variant это тип данных, который используется во всех переменных с необъявленным явно типом. Этот тип данных может хранить любой из вышеперечисленных типов за исключение типа Object. На первый взгляд этот тип может показаться более удобным, однако его рекомендуется использовать только в исключительных ситуациях. Данные этого типа обрабатываются значительно медленнее и занимают в разы больше памяти. Этот типа требует памяти 16 байт, в случае если хранится текст, то к 16 + 1 байт на каждый символ.

Тип данных объект

Тип Object используется для доступа к любому объекту известному в VBA. Переменная этого типа сохраняет адрес объекта. Использует память 4 байта.

VBA Excel. Типы данных

Справочная таблица по встроенным типам данных VBA Excel. Применение оператора Option Explicit, настройка его автоматического отображения при создании модуля.

Встроенные типы данных VBA Excel

Тип данных Байты* Диапазон значений
Byte 1 от 0 до 255
Boolean 2 True (Истина) или False (Ложь)
Integer 2 от -32768 до 32767
Long 4 от -2147483648 до 2147483647
Single 4 Отрицательные числа:
от -3,402823Е+38 до -1,401298Е-45
Положительные числа:
от 1,401298Е-45 до 3,402823Е+38
Double 8 Отрицательные числа:
от -1,79769313486232Е+308
до -4,94065645841247Е-324
Положительные числа:
от 4,94065645841247Е-324
до 1,79769313486232Е+308
Currency 8 от -922337203685477,5808
до 922337203685477,5807
Date 8 с 1 января 100 года
по 31 декабря 9999 года
Object 4 Ссылка на объект
String
(переменной длины)
10 + длина строки от 0 до ≈2 млрд символов
String
(фиксированной длины)
длина строки от 1 до ≈65400 символов
Variant
(числа)
16 В пределах диапазона типа
данных Double
Variant
(символы)
22 + длина строки от 0 до ≈2 млрд символов

*Резервируется память в байтах на каждую переменную соответствующего типа.

Тип данных Variant может принимать специальные значения: Empty, Error, Nothing и Null.

Кроме встроенных типов данных VBA Excel позволяет использовать пользовательские типы, создаваемые с помощью оператора Type. Диапазон значений пользовательского типа данных определяется встроенными типами, из которых он состоит.

Оператор Option Explicit

VBA Excel допускает использование в коде как объявленных, так и необъявленных переменных. Необъявленным переменным присваивается тип данных Variant и они могут принимать все допустимые значения, свойственные этому типу.

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

Чтобы избежать ошибок при работе с переменными используется оператор Option Explicit. Он указывает на то, что все переменные в модуле должны быть объявлены с помощью ключевого слова Dim или ReDim. В этом случае, если компилятор обнаружит строку с необъявленной переменной, то сгенерирует ошибку и выделит эту переменную.

Размещается оператор Option Explicit в самом начале модуля перед всеми остальными операторами. Чтобы каждый раз не вставлять его вручную и, тем более, не забыть о нем, можно настроить редактор VBA Excel, чтобы он автоматически добавлял Option Explicit при создании нового модуля.

Настройка автоматического добавления Option Explicit

1. Откройте окно Options через вкладку меню Tools:

2. Отметьте галочкой опцию Require Variable Declaration на вкладке Editor:

3. Теперь новый модуль открывается со строкой Option Explicit:

Запись опубликована в рубрике Excel. Добавьте в закладки постоянную ссылку.