Глава 10. ОСНОВНЫЕ ЭЛЕМЕНТЫ ЯЗЫКА ПРОГРАММИРОВАНИЯ VBA

Microsoft Visual Basic for Application - самая последняя версия популярного языка программирования, работающая под управлением операционных систем из семейства Windows. В VBA реализован визуальный стиль программирования.

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

Среда Visual Basic прекрасно подходит для разработки приложений практически любого типа.

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

В Visual Basic существуют следующие типы данных:

Табл. 10.1

Тип Размер Диапазон значений
Byte 1 байт Целое от 0 до 255
Boolean (Булевый) 2 байта True (Истина) или False (Ложь)
Integer (Целый) 2 байта <= | 32 767 |
Long (Длинное целое) 4 байта <= | 2 147 483 647 |
Single (С плавающей точкой одинарной точности) 4 байта |-1,4013E-45 |<= Single <= |-3,4028E+38 | (отриц.числа) |1,4013E-45 | <= Single <= |3,4028E+38 | (полож.числа)
Double(С плавающей точкой двойной точности) 8 байт От -1,8E+308 до -4,94E-324 - для чисел < 0, От 4,94E-324 до 1,8E+308 - для чисел > 0
Currency (Денежный, масштабированное целое число) 8 байт Currency <= |922 377 203 685 477.5807|
Decimal (десятичное) 14 байт 28 цифр в дроб.части (для Ч≥0) или ±0,1E-15 (для Ч≤0)
Date (Дата) 8 байт От 01.01.100 до 31.12.9999
Object (Объектный) 4Б (байта) Любая ссылка на объект
String (Строка перемен. длины) 10 Б+длина строки От 0 до 2 000 000 000 символов
String (Строка фиксир. длины) Длина строки От 0 до 65 400 символов
Variant (Вариантный числовой) 16 байт Любое числ. знач-е вплоть до границ Double
Variant (Вариантный строковый) 22 Б+длина строки От 0 до 2 000 000 000 символов
User-defined (Определяемый пользователем) Любой Определяется заданным типом данных

Коротко - о каждом из типов данных.

Первые 3 типа (Byte, Boolean, Integer) относятся к целым типам данных – это числа только с целой частью. Следующие 3 (Single, Double, Currency) – это числа с плавающей точкой, имеющие целую и дробную части. Тип Currency отличается ещё и тем, что после точки в дробной части всегда отображаются 4 разряда.

Назначение остальных типов данных следует из их названий. Отдельно надо сказать только о типеVariant.

Это - очень своеобразный, "коварный" тип. Он характерен тем, самустанавливает типданных в зависимости от содержимого(значения) переменной, которой он присвоен. Если значение – число 5, то переменная типа Variant принимает тип Integer;если 1,25, то - Single (вещественный);если текст, то - String (строка).Кроме того, он может заключать в себе ещё и даты и объекты. Запомните ещё одну особенность:переменнаятипаVariantсама изменяетсвой тип во время выполнения программы!Тип данных Decimal не самостоятелен, а всего лишь является подтипом Variant.

Переменные VBA.

Переменная - это поименованное место в оперативной памяти компьютера.



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

Прежде, чем начать работать с переменной, ей надо присвоить имя, чтобы иметь возможность обращаться к ней. Затем задают и её тип.

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

Ø имя обязательно должно быть уникальным;

Ø максимальная длина имени - 255 символов;

Ø имя должно начинаться с буквы;

Ø в качестве прочих символов имени д о п у с т и м ы буквы, цифры и символ подчеркивания ( _ ); другие символы не допускаются;

Ø в качестве имени н е л ь з я использовать к л ю ч е в ы е (зарезервированные) слова языка Visual Basic (например, Print).

ПРИМЕЧАНИЕ 8: в имени можно использовать и строчные и заглавные буквы, однако, в отличие от Word или Excel, для Visual Basic это б е з р а з л и ч н о. Для него SumZarpl и sumzarpl – это одно и тоже.

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

Объявление переменных

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

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

Для явного объявления переменной используется оператор Dim, с помощью которого в языке VBA резервируется область памяти, предназначенная для хранения данных указанного типа. На эту область и будет ссылаться переменная. Синтаксис оператора Dim таков:

DimИмя_переменной [Аs Тип_данных]

Необязательная часть объявления переменной заключена в скобки [ ] и может быть опущена. Например, объявления переменных Name и Name1:

Dim Name As String

Dim Namel

В первом операторе Name — имя переменной, a String (строчный)— присвоенный ей тип данных.

Во втором операторе конструкция As String (как строчный) отсутствует, поэтому переменной Namel будет присвоен тип Variant.

П О М Н И Т Е: переменные типа Variant требуют для своего хранения гораздо б о л ь ш е памяти и работа с ними з а м е д л я е т выполнение программы. Хотя такие переменные не ограничены хранением какого-то одного типа данных, на практике ситуация, когда в одной переменной требуется хранить данные разных типов, встречается довольно редко.

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

DimNameAs String,TabNomAs Integer

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

Область действия переменной

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

Любая переменная может использоваться только в области своего действия, поскольку вне этой области данная переменная считается просто несуществующей и программе о ней ничего неизвестно.

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

1) места объявления этой переменной и

2) указанных при ее объявлении ключевых слов.

Для областей действия переменных можно выделить т р и уровня.

1.П е р е м е н н а я, объявленная в п р о ц е д у р е, является доступной т о л ь к о в э т о й п р о ц е д у р е.

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

2.П е р е м е н н а я, объявленная в р а з д е л е о б ъ я в л е н и й м о д у л я с помощью ключевых слов Private или Dim, является д о с т у п н о й т о л ь к о в п р е д е л а х э т о г о м о д у л я.

Ключевое слово Private в этом случае работает точно так же, как и Dim. Для того чтобы переменная, объявленная с использованием этих ключевых слов, была доступна для всех процедур в данном модуле, ее объявление необходимо поместить в начало всего модуля, перед кодом всех его процедур.

3. П е р е м е н н а я, объявленная в разделе объявления модуля сп о м о щ ь ю к л ю ч е в о г о с л о в а Риblic, является доступной для в с е х м о д у л е й во в с е х проектах.

При наличии в разделе объявлений модуля оператора Option Private Module переменные, объявленные с использованием ключевого слова Public, будут доступны всем модулям только данного проекта.

Всё это трудно понять до тех пор, пока не будет рассмотрен какой-нибудь конкретный пример, в котором бы встречались все 3 варианта области действия переменных.

Рассмотрим следующий абстрактный (не "привязанный" к конкретной задаче) пример (см. рис.10.1).

Здесь переменные а и b доступны в пределах всего модуля, в состав которого входит приведенный выше фрагмент. Переменная с будет доступна для всех модулей, но только данного проекта (поскольку указан оператор Option Private Module).

Переменная х будет доступна только внутри самой процедуры NewSub, поскольку она объявлена непосредственно в ней.

Option Private Module

Dim a As Integer

Private b As Long

Public с As Single

. . . . . . .

Public Sub

NewSub()

Dim x As Single

. . . . . . . .

End Sub

Рис. 10.1. Способы объявления переменных в VBA-программе









Последнее изменение этой страницы: 2016-04-20; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь