Описание простых переменных в vba
Range(“A5:A10”). Value = 0 или Range(“A5:A10”) = 0 – в диапазон ячеек A5:A10 заносится значение 0.
Cells(2, 4). Value = n или Cells(2, 4) = n – в ячейку, находящуюся на пересечении 2-й строки и 4-го столбца (ячейка с адресом “D2”), заносится значение переменной n.
Синтаксис чтения свойств объекта следующий:
Переменная = Объект. Свойство
Например:
Xn = Cells(1, 2).Value или Xn = Range(“B1”).Value – переменной Xn присваивается значение из ячейки B1 текущего рабочего листа.
Синтаксис применения методов к объекту:
Объект. Метод
Например:
Sheets(2).Activate – сделать активным лист с №2.
Sheets(“Диаграмма”).Delete – удалить лист с именем “Диаграмма”.
Range("A5:A10").Clear – очистить диапазон ячеек A5:A10.
Range("A2:B10").Select – выделить диапазон ячеек A2:B10.
В MS Excel имеются объекты, которые содержат другие объекты. Например, рабочая книга содержит рабочие листы, рабочий лист содержит диапазон ячеек и т. д. Объектом самого высокого уровня является Application (приложение). Если вы изменяете его свойства или вызываете его методы, то результат применяется к текущей работе MS Excel. Например:
Application. Quit — завершение работы с Excel.
Отметим, что точка после имени объекта может использоваться для перехода от одного объекта к другому. Например, следующее выражение очищает вторую строку рабочего листа Май в рабочей книге Отчет:
Application. Workbooks("Отчет").Worksheets("Май").Rows(2).Delete
Нужно отметить следующее:
- Можно не писать имя объекта Application, так как это подразумевается по умолчанию. При работе с подобъектом уже активизированного объекта нет необходимости указывать содержащий его объект. VBA использует некоторые свойства и методы, которые возвращают объект к которому они относятся (это позволяет быстро указывать нужный объект). Примеры таких свойств: ActiveCell (активная ячейка), ActiveSheet (активный лист), ActiveWorkBook (активная рабочая книга). Так, установить значение активной ячейки можно следующим образом:
ActiveCell. Value = " Да".
2.2. Описание данных
Все объекты, которыми оперирует язык программирования VВА, относятся к определенному типу.
Тип данных определяет:
– область возможных значений переменной;
– структуру организации данных;
– операции, определенные над данными этого типа.
Типы данных подразделяются на простые (скалярные) и сложные (структурированные). У простых типов данных возможные значения данных едины и неделимы. Сложные же типы имеют структуру, в которую входят различные простые типы данных. Скалярные типы данных представлены в таблице 2.1.
Таблица 2.1. Скалярные типы VBA
Имя типа |
Русское |
Возможные значения |
Boolean |
Логический |
True, False |
Byte |
Байтовый |
0…255 |
Integer |
Целое |
-32768…+32767 |
Long |
Длинное целое |
-2147483648…+2147483647 |
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 для положительных значений. |
Currency |
Денежный |
Десятичные числа с фиксированной позицией запятой. Возможны 15 цифр до запятой и 4 после. |
String |
Строковый |
Есть два вида строк: строки фиксированной длины (до 216 символов) и строки переменной длины (до 231 символов). Данные записываются в кавычках. |
Date |
Дата |
Даты изменяются в диапазоне от 1.01.100г. до 31.12.9999г. |
Object |
Объект |
Ссылка на объект (указатель) |
Variant |
Вариант |
Универсальный тип, значением которого могут быть данные любого из перечисленных выше типов, объекты, значения NULL и значения ошибок ERROR. |
Переменные в программе можно описывать или не описывать. В последнем случае ей будет присвоен тип Variant. Явно описывать переменную можно как в начале блока, так и в любом месте, где возникла необходимость использовать новую переменную. Лучше все переменные описывать явно и, как правило, в начале блока. Для запрета использования переменных, которые не были описаны явно, в начало программы необходимо вставить оператор Option Explicit.
2.2.1. Описание простых переменных
Описание простых переменных имеет следующий синтаксис:
Dim ИМЯ_ПЕРЕМЕННОЙ As ИМЯ_ТИПА
Одним оператором Dim можно описать произвольное число переменных, но конструкция Аs должна быть указана для каждой из них, иначе переменным без Аs будет присвоен тип Variant.
Например.
Dim X As Byte, Z As Integer, С, Cлово As String
Здесь переменная Х — это переменная байтового типа, переменная Z — целого типа, переменная С — типа вариант (по умолчанию), переменная Слово — строкового типа.
2.2.2. Описание констант
Данные, не изменяющиеся внутри программы можно считать константами. Их можно описать следующим образом:
Const ИМЯ_КОНСТАНТЫ As ИМЯ_ТИПА=ПОСТОЯННОЕ_ВЫРАЖЕНИЕ
Например.
Const Pi As Double = 3.141593
2.2.3. Описание массивов
Для хранения векторов, матриц и т. д. можно использовать массивы.
Массив — это структурированный тип данных, который представляет собой последовательность ячеек памяти, имеющих общее имя и хранящих данные одного типа. Каждый элемент массива определяется индексом (номером). Количество элементов в массиве называется размерностью массива. Массив описывается следующей конструкцией:
Dim ИМЯ_МАССИВА(СПИСОК_РАЗМЕРНОСТЕЙ) As ИМЯ_ТИПА
В списке размерностей массива каждое измерение отделяется запятой и определяется заданием нижней и верхней границ изменения индексов.
Например.
Dim X(1 TO 5) As Integer, Y(1 To 10, 1 To 20) As Double
Здесь Х — одномерный массив, состоящий из 5 элементов целого типа, Y — двумерный массив, у которого 10 строк и 20 столбцов с элементами числового типа двойной точности.
2.3. Выражения
Выражения устанавливают порядок выполнения действий над элементами данных. Выражения состоят из операндов и знаков операций. Операндами являются константы, переменные, указатели функций, выражения, взятые в скобки.
2.3.1. Виды операций
Операции бывают арифметические, отношения и логические:
– арифметические операции:
^ возведение в степень,
* умножение,
/ деление,
деление нацело,
mod остаток от деления,
+ плюс,
— минус;
– операции отношения:
< меньше,
> больше,
<= меньше или равно,
>= больше или равно,
= равно,
<> не равно;
– логические операции:
Not логическое отрицание,
And логическое "И",
Or логическое "ИЛИ".
Результатом логической операции может быть одно из двух значений:
True ("истина") или False ("ложь").
2.3.2. Приоритет выполнения операций
Если выражение содержит несколько операций, то приоритет их выполнения следующий:
1. Сначала выполняются арифметические операции в таком порядке, как они представлены в таблице 2.2.
Таблица 2.2. Приоритет арифметических операций
Описание операции |
Обозначение в VВА |
Унарный минус (изменение знака) |
— (в начале выражения) |
Возведение в степень |
^ |
Умножение и деление |
*, / |
Деление нацело и остаток от деления |
, Mod |
Сложение и вычитание |
+, — |
2. Далее операции отношения (они имеют одинаковый приоритет).