Материал: Программирование на языке Visual Basic для приложений. Подвальный С.Л., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

лист в книге. Если задать переменную 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

Источник: https://studfile.net/preview/16565567/