Задание №1 на дом: выучить содержимое таблицы с типами данных

Лабораторная работа №2

Типы данных VBA

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

Тип 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*1038 до -1,401298*10-45
и положительных от 1,401298*10-45 до 3,402823*1038.
Числа, хранимые с использованием типа Single, называются числами одинарной точности.

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

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

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

Тип данных Currency

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

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

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

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

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

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

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

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

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

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

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

Тип данных Variant

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

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

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

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

Тип данных Описание и диапазон значения
Byte Хранение положительных чисел от 0 до 255
Boolean Хранение логических значений: True, False
Currency Хранение чисел для точных вычислений в диапазоне от -922337203685477,5808 до 922337203685477,5807
Date Хранение даты и времени. Даты от 1.01.100 до 31.12.9999 Время от 00:00:00 до 23:59:59
Double Хранение чисел двойной точности от -1,79769313486232*10308 до -4,94065645841247*10-324 от 4,94065645841247*10-324 до 1,79769313486232*10308
Integer Хранение целых чисел от -32768 до 32767
Long Хранение целых чисел от -2147483648 до 2147483647
Single Хранение чисел одинарной точности от -3,402823*1038 до -1,401298*10-45 от 1,401298*10-45 до 3,402823*1038
String Хранение текста длиной до 2 млрд. символов
Variant Хранение любого типа данных

Задание №1 на дом: выучить содержимое таблицы с типами данных.

Переменные VBA

Переменная - это имя, которое программист дает области компьютерной памяти, используемой для хранения данных какого-либо типа.

Для лучшего понимания переменной можно провести аналогию, скажем, с автоматической камерой хранения на вокзале. Ячейки камеры, как известно, пронумерованы - это "имя" переменной (в отличие от камеры хранения, мы можем сами присваивать определенное имя переменной). То, что лежит в ячейке камеры хранения - это значение переменной. Оно может меняться, но номер ячейки (имя переменной) остается одним и тем же.

Имя переменной

При выборе имени переменной необходимо соблюдать определенные правила:

  • Имя переменной должно начинаться с буквы алфавита;
  • Имена переменных не могут содержать пробелы, точку или любой другой символ, который VBA использует для обозначения математических операций и операций сравнения;
  • Имена переменных не могут превышать 255 символов;
  • Имя переменной должно быть уникальным в рамках его области действия. Оно должно быть уникальным в пределах процедуры или модуля, в которой объявлена эта переменная (по аналогии с камерой хранения: на одном вокзале не может быть двух ячеек с одинаковым номером).Имя переменной не может дублировать зарезервированные ключевые слова VBA;
  • Имена переменных не чувствительны к состоянию регистра. Т.е. нет разницы между MyNumber, mynumber, mYnUmBeR.

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

Создание переменной

Самым простым способом создания переменной является использование ее в операторе VBA. При этом VBA создает переменную и резервирует память для переменной. Сохранение значения данных в переменной называется присваиванием переменной. Делается это с помощью оператора присваивания (=).

Например: Sum=120

Этот оператор сохраняет численное значение 120 в ячейке памяти, заданной переменной Sum.

Такое объявление переменной называется "неявным объявлением переменной" или "объявление переменной на лету". Все переменные, которые VBA создает подобным образом, имеют тип данных Variant.

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

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

  • Ускоряется выполнение кода;
  • Уменьшается количество потенциальных ошибок при написании кода;
  • Улучшается читабельность программного кода;
  • Нормализуется выделение заглавными буквами в имени переменной (т.е., если вы явно объявили имя переменной как "AllSumm", то при написании в теле кода этой переменной, как allsumm, автоматически произойдет замена на AllSumm)

Для явного объявления переменной используется оператор Dim (Dimension).

Синтаксис:

Dim name1 [, name2…]

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

Например:
Dim MyValue
Dim Value_1, Value_2

Все переменные, созданные подобным образом, являются переменными типа Variant.

Когда VBA создает новую переменную, эта переменная инициализируется (переменной присваивается некоторое значение "по умолчанию"):

  • строки инициализируются пустыми строками;
  • числа - значением 0;
  • переменные типа Boolean - False;
  • даты - 30 декабря 1899

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

Задание №1 на дом: выучить содержимое таблицы с типами данных - student2.ru

Задание №1 на дом: выучить содержимое таблицы с типами данных - student2.ru

Наши рекомендации