лист в книге. Если задать переменную InstBook для ссылки на объект рабочей книги, то приведенный ниже оператор активизирует эту рабочую книгу:
InstBook.Activate
Хотя метод Activate не имеет аргументов, многие методы объектов имеют один или более аргументов. В следующем примере вызывается метод SaveAs объекта рабочей книги Excel; используется один обязательный аргумент и один из нескольких необязательных аргументов.
ActiveWorkbook.SaveAs Filename:=_ "C:\Papka1\NEWFILE.xls", FileFormat:=xlNormal Word-объекты Document также имеют методы Activate и
SaveAs с похожими аргументами. Первый оператор, приведенный ниже, активизирует документ, на который ссылается переменная InstDoc, а второй — использует метод SaveAs документа для сохранения активного документа под другим именем:
InstDoc.Activate
ActiveDocument.SaveAs Fileame:="C:\VBA2000\Chapl0.doc"
Многие объекты имеют методы, которые возвращают значения так же, как это делает функция. Чтобы использовать значение, возвращаемое методом, необходимо поместить список аргументов метода в круглые скобки и включить вызов метода в оператор присваивания или другое выражение, точно так же, как при использовании функции. Можно также игнорировать результат, возвращаемый методом. Чтобы игнорировать результат метода (если он имеет результат), вызовите метод без круглых скобок вокруг списка аргументов, как если бы метод не возвращал результата.
Пример: Excel-метод Address (который принадлежит объекту Range) возвращает адрес диапазона ячеек в рабочем листе как строку. В следующем примере показан оператор VBA, который использует метод Address (myRange — это объектная переменная, которая ссылается на диапазон ячеек в рабочем листе):
MsgBox myRange.Address
118
Если переменная myRange ссылается на первую ячейку в рабочем листе, то оператор MsgBox в приведенной выше строке примера отображает строку $А$1.
Хотя в этом примере метод Address вызывается без ка- ких-либо аргументов, он, на самом деле, имеет несколько необязательных аргументов. Эти необязательные аргументы определяют стиль адреса ячеек рабочего листа, возвращаемого методом, а также, являются ли координаты ячеек абсолютными или относительными. В следующем примере показан вызов метода Address с его третьим необязательным аргументом (который определяет стиль возвращаемых координат ячеек):
MsgBox myRange.Address(, , xlRlCl)
В этом операторе необходимо в список аргументов метода включать отмечающие запятые для пропущенных необязательных аргументов, как для любой другой процедуры или функции. Поскольку аргумент ссылочного стиля является третьим аргументом, ему предшествуют две отмечающие запятые в списке аргументов. X1R1C1 — это внутренняя константа Excel, указывающая на то, что координаты ячеек рабочего листа используют стиль записи R1C1; если объектная переменная myRange ссылается на ячейку во второй строке и третьем столбце, то отображается строка R2C3 (вторая строка, третья колонка).
Методы имеют также именованные аргументы, как и другие процедуры и функции VBA. Можно переписать последний пример, используя именованные аргументы, следующим образом:
MsgBox myRange.Address(ReferenceStyle:=x1R1C1)
Используйте именованные аргументы, чтобы было легче читать код VBA. В каждом из следующих примеров показан оператор, вызывающий метод SaveAs объекта рабочей книги Excel (этот метод не возвращает результат) для сохранения рабочей книги под другим именем (объектная переменная InstBook ссылается на рабочую книгу):
InstBook.SaveAs "NEWNAME.XLS", xlNormal, , , , True InstBook.SaveAs FileName:="NEWNAME.XLS" ,_
119
FileFormat:=xlNormal, _ CreateBackup:=True
Оба оператора используют только три из шести необязательных аргументов для метода SaveAs. Первый оператор использует стандартный список аргументов, второй — именованные аргументы. Намного легче понять назначение и действие второго обращения к методу SaveAs, чем первого.
Между методом объекта и любой другой процедурой VBA (встроенной или пользовательской) имеется одно существенное отличие — метод принадлежит определенному объекту и метод можно использовать, обращаясь к нему только посредством этого объекта. Часто можно распознать вызов методов в коде VBA по тому факту, что метод связан со ссылкой на объект с помощью точки-разделителя.
|
|
|
Таблица 7.5 |
|
Некоторые методы объектов Excel |
||
Метод |
Назначение |
Имеется в объектах |
|
Activate |
Активизирует объект |
Window, Work- |
|
|
|
|
book, Worksheet, |
|
|
|
Range и в других |
|
|
|
объектах |
Calculate |
Выполняет вычисления в от- |
Application, Range, |
|
|
крытой рабочей книге, рабо- |
Worksheet |
|
|
чем листе или диапазоне |
|
|
Clear |
Удаляет данные, сохранен- |
Range |
|
|
ные в указанном объекте |
|
|
Close |
Закрывает указанный объект |
Window, Work- |
|
|
|
|
book, Workbooks |
Justify |
Выравнивает текст, сохра- |
Range |
|
|
ненный в указанном объекте |
|
|
Run |
Выполняет |
указанную про- |
Application, Range |
|
цедуру или функцию |
|
|
Save |
Сохраняет |
файл рабочей |
Application, Work- |
|
книги |
|
book |
120
Продолжение табл. 7.5
SaveAs |
Сохраняет указанный объект |
Workbook, Work- |
|
в другом файле |
sheet |
Select |
Выбирает указанный объект |
Range, Sheets, |
|
|
Worksheets |
SendKeys |
Пересылает нажатия клави- |
Application |
|
ши в диалоговые окна в host- |
|
|
приложении |
|
Volatile |
Регистрирует функцию как |
Application |
|
изменяющуюся |
|
В рабочей книге Excel занесите какую-либо информацию в ячейки листа и выделите какую-нибудь ячейку. Выполните код следующего листинга.
Листинг. Метод Clear для ячейки и диапазона
1Sub TestMethodsOl()
2'тестирование метода Clear
4'содержимое активной ячейки
5'до применения метода Clear
6MsgBox ActiveCell.Formula, , "До метода Clear"
8'выполнения Clear
9ActiveCell.Clear
11'содержимое активной ячейки
12'после применения метода Clear
13MsgBox ActiveCell.Formula, , "После метода Clear"
15'Очистить диапазон ячеек:
16Range("C6:D7").Clear
18End Sub
Сначала в результате выполнения кода этого листинга (строка 6) на экран выдается в диалоговом окне содержимое
121
активной ячейки С4. Метод ActiveCell.Clear очищает эту ячейку, а оператор в строке 13 выдает на экран пустое сообщение. Наконец, оператор в строке 16 очищает диапазон ячеек C6:D7. Обратите внимание на то, как задается диапазон ячеек для выполнения метода Clear.
|
|
|
Таблица 7.6 |
|
Некоторые методы объектов Word |
||
Метод |
|
Назначение |
Имеется в этих |
|
объектах |
||
|
|
|
|
Activate |
|
Активизирует объект |
Window, Document, |
|
|
|
Pane и в других объ- |
|
|
|
ектах |
CheckSpelling |
|
Проверяет орфогра- |
Document, Range |
|
|
фию указанного доку- |
|
|
|
мента или диапазона |
|
Close |
|
Закрывает указанный |
Window, Document |
|
|
объект |
|
Delete |
|
Удаляет указанный |
Bookmark, Range и в |
|
|
объект или удаляет |
других объектах |
|
|
символы и слова |
|
GoTo |
|
Перемещает курсор в |
Document, Range, Se- |
|
|
начальное положение |
lection |
|
|
элемента, такого как |
|
|
|
страница, закладка |
|
|
|
или поле; возвращает |
|
|
|
объект Range |
|
Printout |
|
Печатает указанный |
Application, Docu- |
|
|
объект |
ment, Envelope, Win- |
|
|
|
dow |
Run |
|
Выполняет указанную |
Application |
|
|
процедуру или функ- |
|
|
|
цию |
|
Save |
|
Сохраняет указанный |
Document, Template |
|
|
объект |
|
122