Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

Глава 19. Инструментальные средства пользователя в среде microsoft office

Single использует 4 байта для раздельного хранения мантиссы (цифровая часть числа — максимум 7 знаков) и порядка (расположение десятичной точки).

Double использует 8 байтов для раздельного хранения мантиссы (максимум 15 зна­ков) и порядка.

Currency использует 8 байтов, десятичная точка всегда располагается между 4 и 5 цифрами справа, обеспечивает автоматическое округление результатов вычислений.

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

String использует 1 байт для хранения 1 символа плюс 1 байт для отметки конца стро­ки. Символы хранятся в виде кодов ANSI.

Object использует 4 байта памяти для ссылки на любой объект Visual Basic.

Array определяет список данных любого типа и любой размерности.

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

Таблица 19.4. Встроенные типы данных VBA

Тип данных

Размер (в байтах)

Разрядность (цифр)

Диапазон

Boolean

2

1

True, False

Integer

2

5

-32768; 32768

Long

4

10

-2147483648; 2147483648

Single

4

7

-3.402823Е+38; 1.401298Е-45 и 1.401298Е-45; 3.402823Е+38

Double

8

15

-1.79769313486232Е+308; -4.94065645841247Е-324 и

4.94065645841247Е-324; 1.79769313486232Е+308

Currency

8

19

-922337203685477.5808; 922337203685477.5808

Date

8

01.01.100; 31.12.9999

String

1+1

0; 65535

Object

4

Любой определенный объект

Array

Зависит от

Любой встроенный тип данных

числа эле-

ментов и

их

размера

Variant

Зависит от

самих дан-

ных

Переменные

Переменной называется поименованная область в памяти компьютера во время выполнения программы.

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

19.2. СОЗДАНИЕ ПРИЛОЖЕНИИ НА ЯЗЫКЕ VISUAL BASIC FOR APPLICATIONS

693

Пример 19.11.

Разрешенное имя переменной

Неразрешенное имя переменной

Комментарий

ПРИмер; приМЕР; EXAMPLE; example

Нет различия прописных и строчных букв, кирил­лицы и латиницы в напи­сании имен

Тарифная_ставка_ 1 _разряда; Tax off 1 class

Для улучшения семанти­ки переменные могут со­стоять из отдельных слов, соединенных знаком

Тарифная ставка $; #гоот; Class&subclass

Нельзя использовать про­белы в имени перемен­ной, а также специальные символы типа: # $ % & !

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

Каждая переменная имеет определенный тип значений и сферу действия, в противном случае ей приписывается тип Variant. На рис. 19.21 показана сфера действия переменных.

Рис. 19.21. Сфера действия переменных в программе на языке VBA

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

Пример 19.12. Переменные var4, var5 используются только в самих процедурах. Переменная var2 объявлена в процедурах 1 и 2. Это соответствует двум различным переменным с одинаковым именем и своей сферой действия (они имеют разные зна­чения и/или типы данных, независимы друг от друга).

Переменные на уровне модуля, varl — в модуле 1 и var3 — в модуле 2, используются во всех вложенных в модуль процедурах. Переменная varl предопределена в про­цедуре 1, но сохраняет свое значение в процедуре 2; переменная var3 предопределена в процедуре 3.

694