Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы прогр на VBA лекции.doc
Скачиваний:
41
Добавлен:
19.03.2016
Размер:
2.24 Mб
Скачать

1.2. Типы данных

Понятие типа является одним из фундаментальных понятий любого языка программирования. При решении любой задачи требуются данные. Каждый элемент данных или объект (константа, переменная, выражение, функция), которым оперирует программа, относится к определенному типу.

Тип данных переменной определяет:

1) множество значений, которые может принимать переменная;

2) совокупность операций, допустимых над переменной;

3) объем выделяемой памяти и форму представления данных в ней.

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

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

Таблица 1

Тип данных

Описание

Размер, байт

Диапазон

Byte

Байт

1

От 0 до 255

Boolean

Логический

2

True илиFalse

Integer

Целое

2

От -32 768 до 32 767

Long

Длинное целое

4

От -2 147 473 648 до

2 147 483 647

Single

С плавающей точкой обычной точности

4

От -3,402823Е38 до - 1,401298Е-45

для отрицательных чисел

От 1,401298Е-45 до 3,402823Е38

для положительных чисел

Currency

Денежный

8

От -922337230685477,5808 до 922337203685477,5807

Double

С плавающей точкой двойной точности

8

Date

Даты и время

8

С 1 января 1900 года до 31 декабря 9999 года

String

Строковый

Variant

Числовые подтипы

16 байт + Nбайт (согласно типу)

Переменная любого числового типа

1.3. Переменные

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

Для объявления переменных обычно используется инструкция объявления Dim.

Синтаксис:

Dim имяПеременной [As тип] [, имяПеременной [As тип] …

Элементы синтаксиса:

имяПеременной –

Обязательный. Имя переменной, удовлетворяющее стандартным правилам именования переменных.

тип –

Необязательный. Тип данных переменной. Для каждой описываемой переменной следует использовать отдельное предложение As тип. В случае отсутствия параметра переменная будет иметь тип Variant.

Например, инструкции

Dim A As Integer, B As Single

Dim C As Boolean

описывают переменные А – целого, В – вещественного и С – логического типа.

Это же объявление переменных можно выполнить с помощью одной инструкции Dim:

Dim A As Integer, B As Single, C As Boolean

При объявлении любой переменной VBA выполняет ряд действий:

  • В памяти выделяется область, размер которой определяется в соответствии с типом объявляемой переменной.

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

  • Переменная инициализируется, т.е. в соответствии с типом объявляемой переменной ей присваивается начальное значение. Число инициализируются значением 0, переменные Boolean – значением False, строки – пустыми строками (не содержат символов).

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

Переменные, описанные с помощью инструкции Dim, называются явно описанными.

Переменные являются неявно описанными, если 1) они используются в программе без объявления их с помощью инструкции Dim или 2) в инструкции объявления типа переменной был опущен параметр тип. Неявно описанные переменные связываются с типом Variant, а затем они используются как любые другие переменные этого типа. Однако, при этом, во-первых, потребуется больше ресурсов памяти по сравнению с другими типами данных и времени, т.к. компилятор вынужден сначала определить настоящий тип переменной, затем преобразовать его к этому типу, и только потом использует в вычислениях. При работе с достаточно большими программами это может привести к значительной потере во времени и ресурсах. Во-вторых, не описывая переменные явно можно получать неправильные ответы или ситуацию «бесконечный цикл» всего лишь из-за орфографической ошибки или описки.

Например, при написании процедуры Prim допущена описка: вместо инструкции K=K+10 введена инструкция K=K1+10. В результате будет искажен результат.

С переменной будет связан тип Variant и тогда, когда при объявлении переменной была допущена ошибка.

Например, инструкции

Dim A, В, С As Integer

Dim D As Variant

описывают переменные A, В и D типа Variant. Причем переменная D описана явно, а переменные A и В неявно. Для того чтобы все три переменные первой инструкции были объявлены как целые, необходимо было написать такую инструкцию:

Dim A As Integer, В As Integer, С As Integer

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

Чтобы наложить требование на явное описание переменных, необходимо в разделе описаний модуля указать директиву компилятора Option Explicit:

Option Explicit

Sub Prim()

Dim K As Byte

K=K+10

. . .

End Sub