ОПИСАНИЕ ЯЗЫКА VBA И СИСТЕМЫ ПРОГРАММИРОВАНИЯ В OFFICE



 

Операционная система Windows корпорации Microsoft обладает изумительно удобным интерфейсом и множеством интеллектуальных средств, которые освобождают пользователя от рутинной работы, присущей другим операционным системам. Естественным и незаменимым дополнением этой операционной системы являются программные продукты Microsoft Office, которые даже начинающему пользователю позволяют с легкостью создавать идеальную по своему оформлению документацию, производить финансовые, инженерные и прочие расчеты, создавать и работать с базами данных, конструировать презентации и слайды. Вместе, операционная система Windows и программные продукты Microsoft Office, покорили весь мир. Корпорация Microsoft интегрировала в свои офисные продукты, в саму операционную среду изумительный по простоте и необычайный по своей эффективности язык программирования Visual Basic for Applications или сокращенно VBA. С помощью этого языка теперь каждый пользователь может автоматизировать работу приложения и максимально приспособить его работу для решения текущих задач, не только добавив интерфейсу новую функциональность, но и удалив из него ненужные для данного приложения элементы, тем самым обеспечив ему дополнительную стабильность.

Возможности VBA совсем не уступают другим системам программирования Windows и постоянно растут. К тому же многие системы программирования в Windows и VBA используют общие библиотеки объектов, среди которых – объекты Excel, Word и т.д.


Типы данных

 

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

- Byte (байтовый);

- Boolean (логический);

- Integer (целый);

- Long (длинный целый);

- Single (с плавающей точкой обычной точности);

- Double (с плавающей точкой двойной точности);

- Currency (денежный);

- Decimal (масштабируемый целый);

- Date (даты и время);

- Object (объектный);

- String (строковый);

- Variant (произвольный);

- тип данных, определяемый пользователем;

- специфические типы объектов.

Для хранения целочисленных данных предназначены типы Integer (диапазон значений от –32768 до 32767, в оперативной памяти занимает два байта) и Long (диапазон значений от –2147483648 до 21447483648 и в оперативной памяти занимает четыре байта). Аналогично, для хранения десятичных чисел с плавающей точкой представлены типы данных Single (диапазон от –3,4Е38 до –1,4Е-45 для отрицательных чисел и от 1,4Е-45 до 3,4Е38 для положительных чисел, в оперативной памяти занимает четыре байта) и Double (диапазон от –1,7Е-308 до –4,9Е-324 для отрицательных чисел и от 4,9Е-324 до 1,7Е308 для положительных чисел, в оперативной памяти занимает 8 байтов). Для хранения чисел с фиксированной точкой служит тип Currency. Переменная данного типа занимает в оперативной памяти 8 байт. Целая часть числа может содержать до 15 цифр, а дробная – до 4.

Используя переменные строкового типа, можно хранить строки как фиксированной, так и переменной длины. Для переменной, имеющей тип строки с фиксированной длинной, указывается максимальная длина строки. Если длина строки, присваиваемая этой переменной, меньше заданной длины строки, то оставшиеся свободные места заполняются пробелами. При присвоении переменной строки, количество символов которой превышает максимальное значение, все лишние символы отбрасываются. Количество символов, хранящихся в строке с переменной длиной, определяется длинной присваиваемых ей данных. При использовании ASCCII кодировки для каждого символа строки выделяется один байт, а при использовании кодировки Unicode – два байта. Кроме этого выделяется 10 байт для строки в целом.

Для хранения двоичных данных рекомендуется использовать массив переменных типа Byte. Каждый элемент массива данного типа занимает один байт оперативной памяти.

Логический тип данных Boolean используется для хранения данных, принимающих одно из двух значений: True или False. По умолчанию переменной данного типа присваивается значение False. В оперативной памяти она занимает два байта.

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

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

Для хранения ссылок на объекты используется тип данных Object. Каждая переменная данного типа требует 4 байта.

При разработке программ в среде VBA в зависимости от типа данных переменных рекомендуется использовать префиксы, приведенные в таблице 2.1

 

Таблица 2.1 – Префиксы, используемые в наименованиях переменных

Тип данных Префикс Пример
Boolean bin binSuc
Byte byt bytImege
Currency cur curPrn
Date dtm dtmFinish
Double dbl dblSum
Integer int intKol
Long Ing IngLoop
Single sng sngTotal
String str strLast
Variant vnt vntValui

 

Описание переменных

 

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

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

- переменные уровня процедуры распознаются только в процедуре, в которой они описаны. Они описываются при помощи инструкций Dim или Static. Такие переменные называются локальными;

- переменные уровня модуля используются только в модуле, в котором они описаны, но не в других модулях данного проекта. Описываются при помощи оператора Dim или Private в области описания модуля, т.е. перед описанием процедур;

- переменные уровня модуля, описанные при помощи инструкции Public, являются доступными для всех процедур проекта. Такие переменные называются открытыми.

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

Для обязательного объявления всех переменных в начале модуля, в так называемой области модуля General Declarations, надо поместить директиву Option Explicit. Использование этой директивы не допускает возможности неправильного ввода имени переменной, которая применяется в одной или не - скольких процедурах модуля. Например, если переменная была объявлена как Ставка, а в коде при наборе вместо русской буквы с была использована латинская буква с, то это приведет к ошибке. В отсутствие директивы Option Explicit подобную ошибку было бы трудно отследить.

 

Описание массивов

 

Как и в других языках программирования, в VBA можно использовать массивы. Массив, как и любую переменную, надо объявлять, используя операторы Dim, Static, Private и Public, которые также задают область видимости переменной. В массиве допускается описание до 60 размерностей. При определении размерности надо указывать верхнюю, а также нижнюю границу. Если нижний индекс не задан явно, нижняя граница массива определяется директивой Option Base. Если отсутствует директива Option Base, нижняя граница массива равняется нулю. Например, в следующем операторе объявляется одномерный массив (вектор) из 12 целых чисел, причем по умолчанию первый элемент массива – А (0), а последний – А (11). В этом случае говоря, что 0 – базовый индекс.

Dim А (11) As Integer

Данный же оператор объявляет двухмерный массив 3´3 (матрицу), состоящий из действительных чисел.

Dim B (2, 2) As Single

Можно изменить базовый индекс, написав в области объявлений модуля директиву Option Base 1. После этого индексы массивов А и В будут начинаться с единицы. Например, в следующем операторе объявляется вектор, состоящий из 11 элементов.

Option Base 1

Dim A (11) As Integer

Другим способом изменения базового индекса является использование ключевого слова То при объявлении массива.

Dim B (1 To 3, 1 To 3) As Single

Dim A (1 To 12) As Integer

Инициализацию элементов массива можно производить по-разному:

- последовательностью операторов:

Dim B (1, 1) As Single

B (0, 0) = 2 : B (0, 1) = 4

B (1, 0) = 1 : B (1, 1) = 6

- оператором цикла:

Dim M (1 To 9, 1 To 9) As Integer

Dim i As Integer

Dim j As Integer

For i = 1 To 9

For j = 1 To 9

M (i, j) = i * j

Next

Next

Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не надо указывать размерность, например:

Dim R () As Single

Затем в программе следует вычислить необходимый размер массива в некоторой переменной, например n, и изменить размер динамического массива с помощью оператора ReDim. В следующем примере сначала объявляется динамический массив, а затем устанавливаются границы его индекса.

Dim R () As Double

ReDim R (1 To 10)

 


Дата добавления: 2020-01-07; просмотров: 177; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!