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

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

Жанры

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

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

Шрифт:

В общем, следует размещать связанные каким-либо образом процедуры в одном модуле.

Как правило, один модуль содержит все процедуры одной целой VBA-программы. Это упрощает программирование, поскольку не приходится иметь дело с вышеописанными сложностями с вызовом процедур и переменных из других модулей.

И все же, если вы планируете создание процедур, которые будут использоваться более чем одной программой, имеет смысл организовать эти процедуры в модули по типу выполняемых ими задач, например МатематическиеПроиедуры ИЛИ БлокОбраЕоткиТекста. Можно создавать

и модули типа КовыеПроцедуры или СтарыеПроцедурыНаВсякийСлучай. Подробности вы найдете в разделе Выбор имен дальше в настоящей главе.

Добавление нового модуля в VBA-проект

Чтобы создать новый модуль в редакторе Visual Basic, сначала убедитесь, что вы работаете с нужным проектом. В окне проводника проектов выделите либо сам проект, либо один из его компонентов - не имеет значения, какой (это может быть, например, форма, объект приложения или модуль). После этого можно добавить модуль в проект любым из следующих способов.

* Щелкните на кнопке Insert Module (Добавить модуль) (ее изображение вы видите рядом). Это многофункциональная кнопка, предназначенная для добавления в проект различных объектов. Если картинка добавления модуля не видна, а вместо нее видна, например, картинка добавления формы, щелкните на узкой полоске со стрелкой около главной части кнопки и выберите нужный пункт из раскрывшегося меню.

* Щелкните правой кнопкой мыши в окне проводника проектов- не забудьте при этом проследить, чтобы курсор находился в рамках нужного проекта, - и выберите Insert Module (Добавить модуль) из появившегося контекстного меню.

* Выберите Insert s Module из меню.

В результате редактор Visual Basic автоматически откроет окно программного кода нового модуля. Созданному модулю будет также назначено типичное имя. Чтобы изменить это имя, напечатайте новое имя в окне свойств (подробности в главе 5).

Что к чему в новом модуле

В окне программного кода для нового модуля есть только один раздел- Declarations (Объявления). Чтобы выяснить, в каком из разделов вы находитесь, взгляните на текст в окне списка справа вверху окна программного кода.

Два типа операторов можно поместить в раздел объявлений модуля.

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

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

Операторы присваивания или выполняемые операторы нельзя размешать в разделе объявлений. Например, в разделе объявлений нельзя задать значение переменной, поскольку для этого требуется оператор присваивания, который можно разместить только внутри процедуры где-нибудь в другом месте модуля. (Различия между выполняемыми операторами, операторами присваивания, объявлениями и параметрами компиляции будут обсуждаться ниже, в разделе Использование операторов.)

Операторы из раздела объявлений имеют и

другое, довольно забавное, название - программный код уровня модуля.

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

Стандартные модули и модули с классом

Большинство создаваемых VBA-модулей - это стандартные модули. В предыдущих версиях VBA и в Visual Basic стандартные модули назывались модулями программного кода.

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

Модули класса, напротив, предназначены для того, чтобы определять в них пользовательские объекты. Создав модуль класса для своего собственного объекта, вы можете затем наполнить его программным кодом, задающим свойства и методы этого объекта. После этого в программном коде из других модулей можно использовать свойства и методы нового объекта точно так же, как это делается со встроенными объектами VBA. Здесь у меня нет возможности углубляться в детали, но хочу заметить, что создание своих собственных объектов служит очень мощным средством программирования.

Создание процедур

Процедуры - это критические функциональные единицы VBA-программы в том смысле, что вы можете выполнить только программный код, содержащийся в какой-либо процедуре.

Основными VBА - процедурам и являются процедуры двух типов- Sub (подпрограммы) и Function (функции). Дополнительная информация о процедурах приводится ниже, во врезке Типы процедур.

Типы процедур

Почти весь создаваемый вами программный код будет содержаться в процедурах всего двух типов - Sub и Function. Процедуры обработки событий, выполняемые в VBA, когда происходит какое-либо событие, например щелчок кнопки мыши, являются специальными процедурами типа Sub. В VBA есть еще один тип процедур-это процедуры типа Property (процедуры свойств). ;

Вот краткое описание особенностей процедур различных типов.

* Процедура типа Sub (подпрограмма) - универсальная процедура для выполнения различных заданий в VBA. Только процедуры типа Sub можно выполнять независимо с помощью приемов, обсуждавшихся в главе 4. Кроме того, одна процедура типа Sub может вызывать (т.е. выполнять) другую.

* Процедура типа Function (функция) тоже может выполнять любой VBA-оператор. Отличие от процедур типа Sub состоит в том, что в данном случае вычисляется некоторое значение, которое возвращается в ту процедуру, откуда процедура типа Function была вызвана.

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

Толян и его команда

Иванов Дмитрий
6. Девяностые
Фантастика:
попаданцы
альтернативная история
7.17
рейтинг книги
Толян и его команда

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Кодекс Охотника. Книга XV

Винокуров Юрий
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XV

Мастер Разума II

Кронос Александр
2. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.75
рейтинг книги
Мастер Разума II

Идеальный мир для Социопата 4

Сапфир Олег
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Идеальный мир для Социопата 4

Проклятый Лекарь V

Скабер Артемий
5. Каратель
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Проклятый Лекарь V

Live-rpg. эволюция-5

Кронос Александр
5. Эволюция. Live-RPG
Фантастика:
боевая фантастика
5.69
рейтинг книги
Live-rpg. эволюция-5

Сонный лекарь 6

Голд Джон
6. Сонный лекарь
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сонный лекарь 6

Сумеречный стрелок

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

Мимик нового Мира 8

Северный Лис
7. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 8

Титан империи 4

Артемов Александр Александрович
4. Титан Империи
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Титан империи 4

Бездомыш. Предземье

Рымин Андрей Олегович
3. К Вершине
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Бездомыш. Предземье

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Генерал Скала и сиротка

Суббота Светлана
1. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Генерал Скала и сиротка