Чтение онлайн

на главную - закладки

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

Многие объекты имеют свойство, выбираемое по умолчанию. Прочитать или установить значение такого свойства можно, указывая только имя объекта и не указывая имя самого свойства. Обратившись снова к предыдущему примеру, предположим, что для объекта objMyзыкaMeтaлл свойством по умолчанию является Название. Тогда последний оператор в примере можно записать проще:

objМузыкаМеталл = "У меня блохи. Плохо."

Использовать свойства по умолчанию удобно, конечно, когда вы точно знаете, какое именно

свойство объекта выбирается по умолчанию. Если же вы сомневаетесь или предполагаете, что потом не удастся вспомнить, какое именно свойство выбирается по умолчанию, то лучше в таком случае напечатать имя свойства.

Как уже упоминалось в разделе "Установки свойств - это данные", свойство одного объекта может указывать на другой объект. Это дает возможность обращаться к дочерним объектам данного объекта-контейнера так, как будто дочерние объекты являются свойствами этого контейнера. Например, в выражении Toolbar.ToolbarItems

ToolbarItems - свойство объекта Toolbar, но значением этого свойства является объект ToolbarItems.

На самом деле именно такое использование свойств объектов является основным средством идентификации объектов для использования в программе (подробности приведены ниже, в разделе "Идентификация объекта для использования").

Подобно тому, как свойства объекта указывают на подчиненные объекты, с помощью свойств можно выяснить, какому контейнеру принадлежит сам объект. Например, если в Visio в переменной хранится ссылка на объект Pages и вы хотели бы выяснить, к какому документ) она относится, то выражение Pages.Parent возвратит ссылку как раз на нужный документ. А если вам потребуется узнать, какому приложению принадлежит данный объект, то, как правило, можно пропустить все промежуточные ступени иерархии и обратиться сразу на самый верхний уровень с помощью свойства Application: Pages.Application.

Методы в действии

Методы - это именованные действия, которые объект может выполнить по команде.

Ввиду того, что любой метод является неотъемлемой частью объекта, объект сам знает, что ему делать, когда вы вызываете метод.

Например, объект, задающий графический элемент, может иметь метод ReSize, изменяющий размеры, и метод Rotate, поворачивающий графический элемент на странице документа.

Объект, представляющий ячейку рабочего листа, может иметь метод Calculate, пересчитывающий значение в ячейке, и метод Clear, удаляющий ее содержимое. Объект, представляющий целый документ, скорее всего имеет методы Print (Печать) и Save (Сохранить).

На самом деле, методы представляют собой не что иное, как процедуры, привязанные к конкретному объекту. Чтобы вызвать метод, необходимо напечатать имя объекта, точку, а затем имя метода. Оставив в стороне сумасшествие металла, давайте рассмотрим объект objМузыкаДжаз в предположении, что он представляет цифровую запись джазовых композиций в мультимедиа-программе. Вполне возможно, что такой объект имеет метод Воспроизведение. Вот как его можно вызвать:

objМузыкаДжаз.Воспроизведение

В основном техника вызова методов вполне согласуется с техникой вызова процедур и функций VBA, о которой шла речь в главе 7.

* Чтобы вызвать метод, требующий ввода аргумента, напечатайте аргумент после имени метода. В следующем примере метод Воспроизведение получает аргумент, говорящий

о том, сколько раз нужно воспроизвести пьесу:

objМузыкаДжаз.Воспроизведение3

* Если метод имеет несколько аргументов, печатайте их через запятую (в следующем примере предполагается, что Негромко является именованной константой, задающей невысокий уровень громкости, a intCкopocть - переменной, определяющей скорость воспроизведения):

objМузыкаДжаз.Воспроизведение 2, Негромко, intCкopocть

* Чтобы вызвать метод, возвращающий значение, присвойте метод переменной или используйте его в выражении как обычную процедуру типа Function. В этом случае все аргументы, независимо от их числа, необходимо заключить в скобки:

dateВремяВоспроизведения = _

objМузыкаДжаз.Воспроизведение(2, Негроко,intCкopocть)

Как и в случае свойств, методы совершенно разных классов объектов могут иметь одинаковые имена. Например, объекты, содержащие группы элементов или других объектов, как правило, имеют метод Add.

Обратите внимание, что метод меняет установки одного или нескольких свойств. Например, объект objМузыкаДжаз может иметь свойство только для чтения ЧислоИсполнений, допускающее изменение только методом Воспроизведение, но его значение в то же время можно выяснить оператором типа intИсполнения = objМузыкаДжаз.ЧислоИсполнений. Некоторые объекты имеют методы, единственное назначение которых - установка значений определенных свойств.

События

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

* Физические действия пользователя программы, например щелчок кнопкой мыши, перемещение курсора, прыжки и пляски вокруг компьютера. (Ну, ладно-ладно, прыжки и пляски вокруг компьютера, очевидно, не относятся к событиям, распознаваемым VBA.)

* Ситуации, в которые попадает объект в ходе выполнения программы. Например, если речь идет об объекте, представляющем документ, то к событиям можно отнести открытие и закрытие документа, добавление и удаление страниц (такие события в Word распознаются объектами Application и Document ). В Visio объекты Pages могут отвечать на девять различных событий, среди которых BeforeShapeDelete (Перед удалением графического элемента) и TextChanged (Изменение текста). Другие примеры таких не связанных с формами событий вы найдете в главе 4.

То, какие события данный объект может распознавать, определяете не вы, а ваше VBA-приложение. К вашим задачам относится создание программного кода, определяющего, что должен делать объект в ответ на распознаваемое событие. Здесь следует обратить внимание на такой момент: вам не нужно вызывать процедуру обработки события из программного кода- при наступлении соответствующего события объект автоматически предпримет запрограммированные вами действия.

Программирование процедур обработки событий для форм рассматривается в главе 10. Те же самые приемы, в основном, применяются и в случае не связанных с формами событий, правда, тут существуют некоторые тонкости, варьирующие от приложения к приложению, а иногда даже в рамках одного приложения. Исчерпывающая информация по этому вопросу должна содержаться в справочной документации вашего приложения или в файлах его справки.

Поделиться:
Популярные книги

Покоритель Звездных врат

Карелин Сергей Витальевич
1. Повелитель звездных врат
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Покоритель Звездных врат

Темный Патриарх Светлого Рода 6

Лисицин Евгений
6. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 6

Восход. Солнцев. Книга IV

Скабер Артемий
4. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IV

Адепт. Том второй. Каникулы

Бубела Олег Николаевич
7. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.05
рейтинг книги
Адепт. Том второй. Каникулы

Система Возвышения. (цикл 1-8) - Николай Раздоров

Раздоров Николай
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров

Измена. Верну тебя, жена

Дали Мила
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Верну тебя, жена

Вечный Данж. Трилогия

Матисов Павел
Фантастика:
фэнтези
юмористическая фантастика
6.77
рейтинг книги
Вечный Данж. Трилогия

Аномальный наследник. Том 1 и Том 2

Тарс Элиан
1. Аномальный наследник
Фантастика:
боевая фантастика
альтернативная история
8.50
рейтинг книги
Аномальный наследник. Том 1 и Том 2

Последний из рода Демидовых

Ветров Борис
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Последний из рода Демидовых

Хищный инстинкт

Суббота Светлана
4. Мир Двуликих
Фантастика:
фэнтези
7.50
рейтинг книги
Хищный инстинкт

Лорд Системы 13

Токсик Саша
13. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 13

Возрождение Феникса. Том 1

Володин Григорий Григорьевич
1. Возрождение Феникса
Фантастика:
фэнтези
попаданцы
альтернативная история
6.79
рейтинг книги
Возрождение Феникса. Том 1

Хозяйка лавандовой долины

Скор Элен
2. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Хозяйка лавандовой долины

В теле пацана 4

Павлов Игорь Васильевич
4. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 4