double arrow

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

Существуют два способа передачи аргументов в метод: по позиции и по имени.

При передаче аргументов по позиции вы просто добавляете их к вызову метода, разделяя запятыми. ОБРАТИТЕ ВНИМАНИЕна порядок следования аргументов! Для метода Close, например, правильный порядок таков: saveChanges, fileName, routeWorkbook.

Ниже приведен пример вызова метода Close со всеми тремя аргументами, переданными по позиции:

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

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

В данном примере метод Close закрывает рабочую книгу Мои таблицы.xls, сохраняя её под именем Мои таблицы-2.xls.

ОБРАТИТЕ ВНИМАНИЕна символ подчеркивания в конце первой строки. Он означает, что команда продолжается на следующей строке. Перед символом подчеркивания необходимо ввести пробел!

Чтобы пропустить какой-то аргумент (например, второй), вставьте вместо него пробел:

Workbooks("Мои таблицы.xls").Close True,, False

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

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

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

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

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

Workbooks("Мои таблицы.xls").Close _

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

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

Workbooks("Мои таблицы.xls").Close _

routeWorkbook:=False, savChanges:=True, _

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

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

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

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

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

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

Правило 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 "Автор этой книги: " & Автор

Exit Sub

End If

Next i

MsgBox "Книга Мои таблицы.xls среди открытых книг не найдена!"


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



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