Читаем VBA для чайников полностью

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

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

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

<p>Стандартные модули и модули с классом</p>

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

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

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

<p>Создание процедур</p>

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

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

<p>Типы процедур</p>

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

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

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

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

* Процедура обработки события (event procedure) - это процедура типа Sub специального назначения. Признаю, что об этом я уже говорил. Но зато я не говорил о том, что подробности о процедурах обработки событий вы найдете в главе 14.

* Процедура типа Property (процедура свойства) выясняет или устанавливает значение свойства пользовательского объекта. О процедурах свойств не будет идти речь аж до главы 14, но здесь они упоминаются просто потому, что вы непременно увидите их среди опций диалогового ; окна Add Procedure (Добавление процедуры).

Строго говоря, макрос в VBA- это процедура типа Sub, не имеющая (т.е. не требующая) параметров.

Макросы образуют единственный класс процедур типа Sub, способных выполняться непосредственно путем вызова по имени либо из редактора Visual Basic, либо из VBA-приложения. Чтобы выполнить процедуру типа Sub с параметрами, ее необходимо вызвать из другой процедуры. Работа с аргументами будет обсуждаться в этой же главе в разделе Привлекательные аргументы.

<p>Каркас процедуры</p>

Вот два примера процедур, по одной каждого из типов (Sub и Function):

Public Sub Субмарина()

MsgBox Поднять перископ!

End Sub

Public Function ФункШин(ДатаРождения As Date)

ФункШин = DateDiff (yyyy, ДатаРождения, Date)

End Function

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

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных