Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать
V a lu e .

192 Часть III. Visual Basic for Applications

A p p lic a tio n .Workbooks("Книга1") .W orksheets("JIHCTI " ) .Ran g e("A l")

Однако в большинстве случаев можно опускать объект A p p l i c a t i o n в ссылках (кроме него использоваться больше нечему). Если объект Книг а 1 — это активная рабо­ чая книга, то опустите ссылку на нее и запишите рассматриваемое выражение следую­ щим образом:

W o rk s h e e ts ( " К н и га 1 " ) . Range( " A l ")

Если Лист1 — активный рабочий лист, можно еще более упростить выражение:

R a n g e ("A l")

Примечание

В Excel отсутствует объект отдельной ячейки. Отдельная ячейка представ­ ляет собой объект Range, состоящий из одного элемента.

Простые ссылки на объекты (как в приведенных примерах) ничего не выполняют. Чтобы выполнить действие, прочтите или измените свойства объекта или задайте метод, который выполняется по отношению к объекту.

Свойства и методы

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

Свойства объекта

Все объекты обладают свойствами. Например, объект R an ge (Диапазон) обладает свойством V a lu e (Значение). Можно создать оператор VBA, чтобы отобразить свойство V a lu e или присвоить ему определенное значение. Ниже приведена процедура, исполь­ зующая функцию VBA M sgBox для отображения окна, в котором представлено значение ячейки А1 листа Лист1 активной рабочей книги.

Sub

ShowValue()

End

Msgbox W o rksh e e ts( "Л ист1" ) . R a n g e ("A l").V a lu e

Sub

Примечание

Функция VBA MsgBox обеспечивает простой способ отображения результа­ тов выполнения кода VBA. Эта функция повсеместно используется в книге.

Код предыдущего примера отображает текущее значение свойства V a lu e для кон­ кретной ячейки — А1 рабочего листа Лист1 активной рабочей книги. Обратите внима­ ние на то, что если в активной книге отсутствует лист с названием Лист 1, то макрос вы­ даст ошибку.

Что необходимо сделать, чтобы изменить свойство V a lu e ? Ниже приведена проце­ дура изменения значения ячейки А1 путем определения значения свойства

Sub

ChangeValue()

 

 

End

W o rksh e e ts("Л и с т 1 ") .R a n g e ("A l").V a lu e

=

123.45

Sub

 

 

После выполнения этой процедуры ячейка

Al

листа Лист1 получает значение

1 2 3 , 45 .

Глава 7. Введение в VBA

193

Можете ввести описанные процедуры в модуль и протестировать их.

Примечание

Многие объекты имеют свойство, заданное по умолчанию. Для объекта Range свойством по умолчанию является va lu e . Следовательно, выражение .v a lu e в предыдущем коде можно опустить, и ничего не произойдет. Однако лучше включать ссылку на свойство, даже если оно используется по умолчанию.

Ниже приводится выражение, в котором доступ к значениям осуществляется с помо­ щью свойств H asForm ula и Form ula объекта Range.

I f Range ( 11А1") . HasFormula Then MsgBox Range ( "A1" ) . Form ula

В данном случае конструкция If-T h e n применяется для условного отображения окна сообщения: если ячейка содержит формулу, эта формула будет отображена путем обраще­ ния к свойству Formula. Если ячейка А1 не содержит формулу, ничего не происходит.

Свойство Form ula доступно в режиме “только для чтения”, поэтому определить формулу можно с помощью кода VBA.

Range ("D 12") .Form ula = " =RAND1)*1 0 0 "

Методы объекта

Кроме свойств, объекты характеризуются методами. Метод — это действие, которое выполняется над объектом. Ниже приведен простой пример использования метода C le a r по отношению к диапазону ячеек. После выполнения этой процедуры ячейки А1:СЗ листа Лист1 станут пустыми, и дополнительное их форматирование будет удалено.

Sub ZapRange()

W orksheets( " Лист1" ) . Range( "А 1 : СЗ" ) . C le a r

End Sub

Если нужно удалить значения в диапазоне, но оставить форматирование, используйте метод C le a rC o n te n ts объекта Range.

Многие методы получают аргументы, определяющие выполняемые над объектом действия более детально. Далее приводится пример, в котором ячейка А1 копируется в ячейку В1 с помощью метода Сору объекта Range. В данном примере метод Сору получает один аргумент (адрес ячейки, в которую следует скопировать данные). Обрати­ те внимание, что в примере используется символ продолжения строки (пробел и подчер­ кивание). Можно не применять этот символ, а ввести оператор в одну строку.

Sub CopyOne ()

W orksheets( "Л ист1" ) . Range( "А 1" ) .Сору _

W o rksh e e ts( "Л и ст1 ") .R ange( " B l" )

End Sub

Определение аргументов методов и свойств

В среде программистов VBA определение аргументов методов и свойств часто вы­ зывает трудности. Некоторые методы используют аргументы для дальнейшего уточне­ ния действий, отдельные свойства применяют аргументы для последующего опреде­ ления значения свойства. Иногда один или несколько аргументов вообще применять необязательно.

Если метод использует аргументы, они указываются после названия метода и раз­ деляются запятыми. Если метод использует необязательные аргументы, можете про­ пустить их, оставив пустые места.

73ак. 3107