Различия между одиночными объектами и объектами из семейств

Передача аргумента по имени

При передаче аргумента по имени надо указать в вызове три элемента:

– имя аргумента (например, saveChanges),

– оператор присваивания с двоеточием (:=),

– значение аргумента.

В следующем примере метод Close вызывается с аргументами,передаваемыми по имени:

Workbooks("Мои таблицы.xls").Close saveChanges:=True, _

fileName:="Мои таблицы-2.xls", routeWorkbook:=False

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

Workbooks("Мои таблицы.xls").Close routeWorkbook:=False, _
saveChanges:=True, fileName:="Мои таблицы-2.xls"

При передаче аргументов по имени программа становится более понятной, а по позиции – более короткой.

1.2. Ссылки: одиночные объекты и семейства

Как уже говорилось, при обращении к свойству или методу объекта их имена просто добавляют к имени объекта, отделяя от него точкой. Ссылка же на сам объект может выглядеть по-разному. К одиночному объекту семейства обращаются либо по имени, либо по его номеру в семействе объектов. Чтобы разобраться, чем отличаются два этих способа, уясним себе, что такое семейство (collection). Если не вдаваться в детали, семейство — это группа похожих объектов. Все объекты Excel можно отнести к одному из двух приблизительно равных по численности классов: одиночным объектам и объектам из семейства [3]. К первым обращаются непосредственно, ко вторым – по имени или по номеру. В предыдущих примерах обращение к рабочей книге Мои таблицы.xls было оформлено с помощью указателя на объект семейства Workbooks [4] по имени.

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

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

В Excel может быть открыто несколько рабочих книг, поэтому к объекту Мои таблицы.xls можно было бы, согласно правилу 2, обратиться по индексу, предварительно узнав его порядковый номер. Следующий пример демонстрирует эту возможность:

Sub СсылкаНаКнигуПоИндексу()

'1. Объявляем переменные:

Dim Автор As String

Dim КолОткрытыхКниг As Integer

'2. Определяем количество открытых книг:

КолОткрытыхКниг = Workbooks.Count

'3. Ищем среди открытых книг книгу с именем Мои таблицы.xls:

For i = 1 To КолОткрытыхКниг

If Workbooks(i).Name = "Мои таблицы.xls" Then

Автор = Workbooks(i).Author

MsgBox "Автор этой книги: " & Автор


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: