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

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

207

A c t i v e C e l l . O f f s e t (1,

0 ) . R a n g e ( " A l " ) . S e l e c t

A c t i v e C e l l . F o r m u l a R l C l = "3 "

A c t i v e C e l l . O f f s e t ( - 2 , 0 ) . R a n g e ( " A l " ) . S e l e c t

End Sub

При записи макросов используется свойство F o rm u la R lC l. Как правило, для ввода значения в ячейку применяется свойство V a lu e . Однако при использовании

la R lC l или F o rm u la результат будет таким же.

Обратите внимание и на то, что полученный код ссылается на ячейку А1. Это доволь­ но странно, так как данная ячейка даже не была задействована в макросе. Такая особен­ ность процедуры записи макросов делает программу даже более сложной, чем необхо­ димо. Можно удалить все ссылки на R ange (" A l " ) , но макрос все равно будет работать нормально.

Sub

M o d i f i e d M a c r o l O

 

A c t i v e C e l l . F o r m u l a R l C l = "1 "

A c t i v e C e l l . O f f s e t (1,

0 ) . S e l e c t

 

A c t i v e C e l l . F o r m u l a R l C l = "2 "

 

A c t i v e C e l l . O f f s e t (1,

0 ) . S e l e c t

 

A c t i v e C e l l . F o r m u l a R l C l = "3 "

 

A c t i v e C e l l . O f f s e t ( - 2 ,

0 ) . S e l e c t

End

Sub

 

Можно получить еще более эффективную версию макроса (например, ту, которую я написал вручную), который вообще не выполняет выделение ячеек.

Sub

M a c r o 1 ()

 

 

 

 

A c t i v e C e l l = 1

 

 

 

 

A c t i v e C e l l . O f f s e t (1,

0)

=

2

 

A c t i v e C e l l . O f f s e t (2,

0)

=

3

End

Sub

 

 

 

Что следует знать об объектах

В предыдущих разделах были изложены основы использования объектов (включая кол­ лекции), свойств и методов. Однако при этом мы затронули только верхушку айсберга.

Важные концепции для запоминания

В этом разделе рассматриваются дополнительные концепции, которые незаменимы, если вы собираетесь стать профессиональным программистом на VBA. Эти концепции станут более понятными по мере приобретения опыта работы с VBA, а также после про­ чтения следующих глав книги.

Объекты обладают уникальными свойствами и методами. Каждый объект имеет собственный набор свойств и методов. Однако некоторые объекты характе­

ризуются общими свойствами (например, Name) и методами (например, D e le t e ) .

Для управления объектами их не обязательно выделять. Это может противо­ речить обычному представлению об управлении объектами Excel, особенно если вы занимались программированием макросов XLM. Дело в том, что действия над объектами эффективнее выполнять, если их сначала не выделять. При записи мак­ роса в Excel объект обычно сначала выделяется. Это необязательно, хотя сущест­ венно замедляет работу макроса.

208

Часть III. Visual Basic for Applications

Важно понимать предназначение коллекций. В большинстве случаев вы будете ссылаться на объект непосредственно, обращаясь к коллекции, к которой он при­ надлежит. Например, для обращения к объекту Workbook с названием Myf i l e необходимо сослаться на коллекцию W orkbooks следующим образом:

W o r k b o o k s ( " Myfi 1 е . x l s x ")

Эта ссылка возвращает объект — рабочую книгу, которая вас интересует.

Свойства могут возвращать ссылку на другой объект. Например, в следую­ щем операторе свойство Font возвращает объект Font, который содержится в объекте Range.

R a n g e ( " A l " ) . F o n t . B o l d = T r u e

Обратиться к одному и тому же объекту можно несколькими способами.

Предположим, что у вас есть рабочая книга с названием S a le s и это единствен­ ная открытая рабочая книга. В ней находится один лист с названием Summary. Можете сослаться на этот лист любым из приведенных ниже способов.

W o rk b o o k s ( 1S a l e s . x l s x " ) . W o r k s h e e t s ( " Sum m ary" )

W o r k b o o k s ( 1 ) . W o r k s h e e t s (1)

W o r k b o o k s ( 1 ) . S h e e t s (1)

A p p l i c a t i o n .A c t iv e W o r k b o o k . A c t i v e S h e e t

A c t iv e W o r k b o o k . A c t i v e S h e e t

A c t i v e S h e e t

Используемый вами метод обычно зависит от того, насколько хорошо вам извест­ но рабочее пространство. Например, если открыто несколько рабочих книг, то второй или третий метод не подойдет. Если вы будете работать с активным лис­ том (какой бы это ни был лист), то воспользуйтесь последними тремя методами. Абсолютную уверенность в том, что вы ссылаетесь на конкретный лист в кон­ кретной рабочей книге, дает только первый метод.

Узнайте больше об объектах и свойствах

Если это ваше первое знакомство с VBA, то вас могут несколько смутить многочис­ ленные объекты, свойства и методы. Вы можете попытаться получить доступ к свойству, которым объект не обладает, однако в процессе выполнения кода произойдет ошибка. Код будет прерываться в этом месте до тех пор, пока вы не исправите ошибку.

Существует несколько способов получить больше информации об объектах, свойст­ вах и методах.

Прочтите оставшуюся часть книги

Не забывайте, что эта глава является вводной. В остальных главах книги рассмотрены детали и приведены полезные информативные примеры.

Используйте средства записи макросов

Несомненно, наилучший способ ознакомиться с VBА — включить функцию записи макросов и записать отдельные действия, выполненные в Excel. Вы получите информа­ цию о том, какие объекты, свойства и методы относятся к конкретной задаче. Будет лучше, если при записи отображается окно модуля VBA, в котором представлен записы­ ваемый код.

210

Часть III. Visual Basic for Applications

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

1.Выберите интересующую вас библиотеку. Если вы не знаете, какую именно биб­ лиотеку выбрать, укажите вариант <AII Libraries>.

2.Введите Comment в раскрывающемся списке под списком библиотек.

3.Щелкните на значке в виде бинокля, чтобы начать поиск текста.

Вобласти Search Results (Результаты поиска) отображается текст, соответствующий фрагменту для поиска. Выберите один объект, чтобы отобразить его классы в разделе Classes. Укажите класс, чтобы отобразить его члены (свойства, методы и константы).

Обратите внимание на нижнюю часть окна, где приведена дополнительная информация об объекте. Можно нажать <F1>, чтобы перейти непосредственно к необходимому раз­ делу справочной системы.

Структура окна Object Browser может сначала показаться сложной, но, изучив ее, вы убедитесь в ее незаменимости.

Экспериментируйте с окном отладки

Как было отмечено во врезке в одном из предыдущих разделов этой главы, окно от­ ладки (Immediate) в VBE используется для тестирования операторов и проверки разных выражений VBA. Рекомендуется всегда отображать окно отладки на экране, так как оно часто используется для проверки выражений и при отладке кода.