
- •Лекция 3.1. Введение в vba
- •1. Создание программы vba
- •2. Объекты Excel
- •2.1. Получение и установка свойств
- •2.2. Вызов методов
- •2.3. Единичные объекты и семейства объектов
- •3. Использование переменных в подпрограммах
- •3.1. Использование переменных типа Object
- •3.2. Типы данных, определяемые пользователем.
- •4. Константы языка vba
2.3. Единичные объекты и семейства объектов
Ссылка на объект возможна двумя способами: можно дать прямую ссылку на единичный объект или можно сослаться на индекс в семействе объектов. Семейство можно определить как группу объектов. Все объекты Excel можно разделить на два класса: единичные объекты и объекты, принадлежащие к семействам. На единичные объекты ссылаются непосредственно по имени. На объекты в семействе ссылаются по индексу в семействе. Примерно половина объектов Excel – это единичные объекты, а остальные – объекты из состава семейства.
Рассмотри пример прямой ссылки на объекты:
Application.Caption = "Мое приложение"
Пример ссылки на объекты из семейства:
Worksheets(1).Name = "Мой первый лист"
При указании индекса для конкретного объекта Worksheet из семейства Worksheets не забывайте указывать множественное число "Worksheets". для большинства семейств в Excel следует использовать множественное число. Исключения – семейства Range и SeriesCollection.
3. Использование переменных в подпрограммах
Переменная должна быть описана до того, как она будет использована, поэтому описания переменных располагаются в самом начале подпрограммы или модуля VBA.
Пример использования оператора Dim в описании переменной:
Dim Var1 As Integer
Рассмотрим подробнее отдельные части оператора
Dim |
Ключевое слово, указывающее на описание переменной (сокращение от "dimension") |
Var1 |
Имя переменной |
As |
Ключевое слово, используемое в качестве разделителя имени переменной и типа данных |
Integer |
Ключевое слово, представляющее собой название типа |
Рассмотрим использование переменных в подпрограммах. В процедуре Proc05 переменная типа Integer используется для установки значения свойства Value объекта Range:
Sub Mod1Proc05_UseIntegerVariable( )
Dim Num1 As Integer
Num1 = 5
Worksheets(1).Range(“A6”).Value = Num1
Worksheets(1).Select
End Sub
Рассмотрим пример с переменной другого типа:
Sub Mod1Proc06_DisplayString( )
Dim String1 As String
String1 = "Привет!"
MsgBox String1
End Sub
В следующем примере подпрограмма передает значение строковой переменной свойству Value объекта Range :
' подпрограмма передает значение строковой переменной свойству ' Value объекта Range
Sub Mod1Proc07_UseStringVariable( )
Dim String2 As String
String2 = "меня зовут Александр"
Worksheets(1).Range("A7").Value = String2
Worksheets(1).Select
End Sub
Написание комментария. Перед процедурой Proc07 находится комментарий, описывающий, что выполняет данная подпрограмма. Комментарий необходимо начинать с символа " ' ", при занесении его в окно модуля, он будет зеленого цвета. Если комментарий из нескольких строк, то каждая строка начинается с символа " ' ".
Описание и присвоение значений объектной переменной слегка отличается от того, как это делается для других переменных. Рассмотрим пример:
Dim Rangel As Object
Set Range1 = Worksheets(1).Range("Al")
Компоненты второй строки оператора приведены ниже
Set |
Ключевое слово, используемое в операторе присваивания для объектной переменной |
Range1 |
Имя объектной переменной |
= |
Операция присваивания |
Worksheets(1).Range("A1") |
Объект, присваиваемый переменной |