Читаем Тайны и секреты компьютера полностью

Указания типов переменных в заголовках функций и процедур необязательны — их можно опустить. В этом случае будет считаться, что все передаваемые переменные могут иметь любой тип (точнее, они просто преобразуются в тип Variant и такими уже используются в подпрограмме). Однако необходимо строго следить за соответствием типов переменных в заголовках подпрограмм и в вызывающей их программе. Так, если в заголовке функции указано, что первая переменная, передаваемая ей, имеет тип Integer, то та переменная, которая передается в функцию как первая (в последнем примере — "a"), должна быть определена именно как Integer до вызова функции (что мы и видим в этом примере).

Перед заголовком функции или процедуры можно поставить инструкции Public или Private ("Private Function uvelich(b As Integer, c As Integer) As Integer"). Функция или процедура, объявленная как Public, может вызываться и из других модулей, в то время как функция или процедура, объявленная как Private, доступна только из данного модуля.

По умолчанию все функции и процедуры считаются объявленными как Public (а переменные — объявленные как Private!).

Если в программе есть вложенные процедуры или функции (то есть процедура или функция вызывает другую процедуру или функцию, которая, в свою очередь, вызывает еще одну процедуру или функцию и.т.д.), то их взаимоотношения ("кто кого вызывает?") удобно при отладке отслеживать с помощью окна Стек Вызова (рис. 2.3), в котором видны все произошедшие вызовы.

Рис. 2.3. Окно Стек вызова.

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

Главная процедура — собственно программа — не может иметь параметров (в ее заголовке должны стоять пустые скобки). Только таким процедурам можно назначать кнопки и сочетания клавиш для их вызова на выполнение.

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

Команда "Шаг с выходом" доступна в любой процедуре или функции, включая главную, и выполняет в обычном режиме все команды до конца процедуры или функции, переходя затем в режим пошагового исполнения в вызвавшей программе.

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

Работа с формами

Формы — это окна интерфейса программы. С их помощью можно сообщать пользователю необходимую информацию или получать ее от него. Для создания форм используются средства редактора VBA. Если хотите наглядно посмотреть, что такое форма — откройте окно установки параметров шрифта (меню "Формат").

Создав форму (из меню правой кнопки мыши в Менеджере проектов выберите Вставить-UserForm) или дважды щелкнув на имени существующей формы, можно попасть в окно Дизайна форм. На появившейся панели инструментов "Панель управления" (если ее нет, то ее можно вызвать из меню Вид-Панель элементов) представлены все возможные элементы формы (рис. 2.4):

…???…

Рис. 2.4. Панель инструментов с компонентами форм

1. Поле отображения текста — отображает текстовую информацию. Просто текст на форме — совет пользователю, к примеру.

2. Поле ввода текста — дает пользователю возможность ввести текстовую информацию. Потом введенные данные можно обрабатывать в программе.

3. Несколько видов списков — средства выбора одного варианта из нескольких представленных, вроде выпадающего списка шрифтов на панели инструментов «Форматирование» в Word.

Значения элементов списков задаются только в программе — при разработке формы с помощью окна "Дизайн форм" их задать нельзя.

4. Флажок — элемент, который независимо от других может находиться в трех состояниях: включенном, выключенном (могут быть определены как пользователем, так и программистом) и неактивном (определяется программой).

5. Переключатель — элемент, который также может находиться во включенном, выключенном и неактивном состояниях. В отличие от флажка, переключатели должны быть обьединены в группы с помощью элемента № 7 — рамки — и, если один из переключателей в группе включен, то остальные включены быть не могут.

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

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