Суффиксы, определяющие тип переменной
Тип переменной | Суффикс |
Integer | % |
Long | & |
Single | ! |
Double | # |
Currency | @ |
String | $ |
Нет суффикса для переменных типов Byte, Boolean, Date, Object, Variant.
Неявное объявление переменных осуществляется также двумя способами:
1. Использование оператора defТип_Данных. Этот оператор устанавливает тип данных для переменных, имена которых начинаются с определенных символов:
DefТип_Данных ДиапазонБукв [, Диапазон Букв] …
Имеются следующие операторы Def:
DefBool Начальная буква [- Конечная буква] – Boolean;
DefByte Начальная буква [- Конечная буква] – Byte;
DefInt Начальная буква [- Конечная буква] – Integer;
DefLng Начальна буква [- Конечнаябуква] – Long;
DefSng Начальна буква [- Конечнаябуква] – Single;
DefDblНачальна буква [- Конечнаябуква] – Double;
DefDec Начальна буква [- Конечнаябуква] - Decimal (не поддерживается);
DefDate Начальна буква [- Конечнаябуква] – Date;
DefCur Начальна буква [- Конечнаябуква] – Currency;
DefStr Начальна буква [- Конечнаябуква] – String;
DefObjНачальна буква [- Конечнаябуква] – Object;
DefVar Начальна буква [- Конечнаябуква] – Variant.
2. Декларация переменной в тексте программы с помощью указания ее имени.
Хороший стиль программирования предполагает использование явной декларации с помощью ключевых слов. Если в общей области программного модуля поместить оператор Option Explicit, VBA будет расценивать любую неявно объявленную переменную как ошибочную.
Стандартные функции для работы со строками
Таблица 10.3 содержит стандартные функции для работы со строковыми переменными.
Таблица 10.3.
Стандартные функции для работы со строками
Имя | Назначение | Аргументы (параметры) | Результат |
Left(S,m); Left$(S,m) | Оставляет в строке m символов, начиная с первого | S - строка; m - количество символов | Строка, содержащая первые m символов строки S |
Right(S,m); Right$(S,m) | Оставляет в строке m последних символов | S - строка; m - количество символов | Строка, содержащая последние m символов строки S |
Mid(S,I[,m]); Mid$(S,I[,m]) | Выделение подстроки | S - строка; I, m - целые значения | Часть строки S, начиная с позиции I, длиной m. Если параметр m отсутствует или его значение больше длины строки, то выделяется часть строки S, начиная с позиции I до конца строки. |
StrComp(s1,s2 [,cmp]) | Сравнение двух строк | s1 - строка; s2 - строка; cmp - признак сравнения (0 - двоичное, 1 - символьное) | 0, если s1 = s2; -1, если s1 < s2; 1, если s1 > s2; Null, если s1 = Null или s2 = Null |
Len(S) | Вычисление длины строки | S - строка | Целое значение длины строки |
LCase(S); LCase$(S) | Преобразование строки к нижнему регистру | S - строка | Новое значение строки S - все символы строчные |
Продолжение таблицы 10.3.
Имя | Назначение | Аргументы (параметры) | Результат |
UCase(S); UCase$(S) | Преобразование строки к верхнему регистру | S - строка | Новое значение строки S - все символы прописные |
InStr([I,]s1, s2[,cmp]) | Вычисляет позицию начала подстроки в строке | s1 - строка; s2 - подстрока; I - целое значение, позиция начала поиска; cmp - признак сравнения (0 - двоичное, 1 - символьное) | = 0, если s2 не содержится в s1$; целое > 0 - позиция s2 в s1. Если параметр I отсутствует, поиск ведется от начала строки |
Trim(S); Trim$(S) | Удаляет пробелы в начале и в конце строки | S - строка | Новая строка |
LTrim(S); LTrim$(S) | Удаляет пробелы в начале строки | S - строка | Новая строка |
RTrim(S); RTrim$(S) | Удаляет пробелы в конце строки | S - строка | Новая строка |
Val(S) | Преобразование строкового типа в числовой | S - строка | Целое или вещественное значение, соответствующее строковой записи S |
Массивы
Массив - совокупность однотипных элементов, имеющая произвольную размерность. Объявляется следующими операторами:
· локальный массив:
Dim <Arr> (размерность) As <type>
· глобальный массив:
Public <Arr> (размерность) As <type>
Статические массивы определяются только глобально – их нельзя определить локально внутри процедуры.
Если размерность массива до начала выполнения программы не известна и изменяется в процессе выполнения программы, то первоначально массив декларируют как динамический:
Dim MyArr() As String
Количество элементов в динамическом массиве и его размерность в процессе выполнения программы можно переопределить с помощью ключевого слова ReDim:
ReDim ИмяМассива(индексы) [As ТипДанных]
Индексирование массива всегда начинается с нуля. Оператор Option Base позволяет задать индексацию массива с 1:
Option Base 1
Для установки других границ массива необходимо использовать синтаксис:
Dim <Arr> ([нижн_предел To] Верх_предел)
Указанием верхней и нижней границ можно задать любые диапазоны индекса.
VBA позволяет также создавать многомерные массивы. При объявлении многомерного массива границы каждой размерности разделяются запятыми:
Dim <Arr> (n1, n2) As Тип
В VBА не предусмотрено никаких ограничений на максимально допустимое количество элементов массива и на количество его размерностей. На практике и первая, и вторая характеристика ограничены доступными объемами системной памяти и дискового пространства.