Интернет-журнал "Домашняя лаборатория", 2007 №3
Шрифт:
Перед заголовком функции или процедуры можно поставить инструкции Public или Private ("Private Function uvelich(b As Integer, с As Integer) As Integer"). Функция или процедура, объявленная как Public, может вызываться и из других модулей, в то время как функция или процедура, объявленная как Private, доступна только из данного модуля.
По умолчанию все функции и процедуры считаются объявленными как Public (а переменные — объявленные как Private!).
Если в программе есть вложенные процедуры или функции (то есть процедура или функция вызывает другую процедуру или функцию, которая, в свою очередь, вызывает еще одну процедуру
Рис. 2.3. Окно Стек вызова.
В выпадающем меню в правом верхнем углу окна программы (см. на рис. 2.2) перечислены все процедуры и функции открытого модуля. Это меню можно использовать для быстрого перехода к необходимому месту модуля, а также в раздел описаний переменных, указание на который стоит в этом меню первым.
Главная процедура — собственно программа — не может иметь параметров (в ее заголовке должны стоять пустые скобки). Только таким процедурам можно назначать кнопки и сочетания клавиш для их вызова на выполнение.
Во время пошагового исполнения при отладке программы с процедурами или функциями имеется возможность отказаться от прохода по всем командам той или иной процедуры или функции, вызвав команду "Шаг с обходом" из меню Отладка или кнопкой на одноименной панели. Тогда вся процедура или функция будет выполнена безостановочно, как при обычном исполнении.
Команда "Шаг с выходом" доступна в любой процедуре или функции, включая главную, и выполняет в обычном режиме все команды до конца процедуры или функции, переходя затем в режим пошагового исполнения в вызвавшей программе.
Разбивая программу на отдельные процедуры и функции, вы получаете возможность легко использовать повторно одни и те же фрагменты кода, обращаясь к ним из программы по мере надобности. К сожалению, увеличить быстродействие программы на VBA при этом не удастся, так как при запуске в шаблоне хотя бы одного макроса он компилируется полностью (в то время как в программах, написанных на многих других языках программирования, загрузка в память функций и процедур происходит лишь по мере обращения к ним).
Работа с формами
Формы — это окна интерфейса программы. С их помощью можно сообщать пользователю необходимую информацию или получать ее от него. Для создания форм используются средства редактора VBA. Если хотите наглядно посмотреть, что такое форма — откройте окно установки параметров шрифта (меню "Формат").
Создав форму (из меню правой кнопки мыши в Менеджере проектов выберите Вставить-UserForm) или дважды щелкнув на имени существующей формы, можно попасть в окно Дизайна форм. На появившейся панели инструментов "Панель управления" (если ее нет, то ее можно вызвать из меню Вид-Панель элементов) представлены все возможные элементы формы (рис. 2.4):
…пустой рисунок…
Рис. 2.4. Панель
1. Поле отображения текста — отображает текстовую информацию. Просто текст на форме — совет пользователю, к примеру.
2. Поле ввода текста — дает пользователю возможность ввести текстовую информацию. Потом введенные данные можно обрабатывать в программе.
3. Несколько видов списков — средства выбора одного варианта из нескольких представленных, вроде выпадающего списка шрифтов на панели инструментов "Форматирование" в Word.
Значения элементов списков задаются только в программе — при разработке формы с помощью окна "Дизайн форм" их задать нельзя.
4. Флажок — элемент, который независимо от других может находиться в трех состояниях: включенном, выключенном (могут быть определены как пользователем, так и программистом) и неактивном (определяется программой).
5. Переключатель — элемент, который также может находиться во включенном, выключенном и неактивном состояниях. В отличие от флажка, переключатели должны быть объединены в группы с помощью элемента № 7 — рамки — и, если один из переключателей в группе включен, то остальные включены быть не могут.
В Microsoft Word имеются диалоговые окна, содержащие как флажки, так и переключатели. Так, почти все вкладки меню Сервис-Параметры состоят из флажков, а меню Вставка-Сноска — из переключателей.
6. Выключатель. Это кнопка, которая может находиться в нажатом или отжатом состоянии. Например, в Microsoft Word так себя ведут кнопки показа скрытых символов или форматирования текста курсивом, жирным шрифтом, подчеркиванием.
7. Рамка. Отображает прямоугольник с заголовком. В основном используется для объединения групп переключателей (тех, что под номером 5 в нашем списке). В одной форме может быть несколько рамок и, как следствие, несколько групп переключателей, могущих действовать независимо друг от друга.
8. Командная кнопка. Обычная командная кнопка вроде кнопок "Ok" или "Отмена" в любом диалоговом окне.
9. Набор вкладок и 10. Набор страниц. Представляют из себя набор страничек-вкладок вроде вкладок "Общие", "Сохранение", "Печать" и др. в диалоговом окне Word Сервис-Параметры. Отличие между этими двумя элементами состоит в том, что 9-й элемент при переключении на другую страничку совершенно не затрагивает другие элементы формы, даже и находящиеся на нем, и изменения в состоянии других элементов можно задать только программно. 10-й же элемент при своем переключении принудительно (т. е. вне зависимости от программы) скрывает элементы на одной своей странице и показывает элементы на другой.
Если привести пример, то 9-й элемент может использоваться в программе — базе данных, отображая вкладки с именами сотрудников. На каждого сотрудника имеется стандартная информация в нескольких полях отображения текста, и количество этих полей для всех одинаково. В этом случае разумнее использовать именно 9-й элемент, соответственно изменяя содержимое полей отображения текста при переключении вкладок, чем создавать с помощью 10-го элемента набор страничек с отдельными полями отображения текста на каждой, что приведет к резкому увеличению и усложнению программы.