Интернет-журнал "Домашняя лаборатория", 2007 №7
Шрифт:
Sub Main
Dim a As Integer
Dim d As Integer
a = 1
d = uvelich(a, 3)
MsgBox d
MsgBox a
End Sub
Function uvelich(b As Integer, с As Integer) As Integer
uvelich = b + с
a=1555
End Function,
то исходная программа — Main в качестве значения переменной "а" отобразила бы число 1555, а не 1.
Указания типов переменных в заголовке функции или процедуры необязательны — их можно опустить. Однако если типы переменных определены в этом заголовке, то они обязательно должны быть определены точно такими же типами и в вызывающей программе, если только они не определяются в функции или процедуре как Variant. Иными словами, если в функцию или процедуру передается
Перед заголовком функции или процедуры можно поставить инструкции Public или Private (для вышеприведенного примера — "Private Function uvelich(b As Integer, с As Integer) As Integer"). Функция или процедура, объявленная как Public, может вызываться и из других модулей, в то время как функция или процедура, объявленная как Private, доступна только из данного модуля.
По умолчанию все функции и процедуры считаются объявленными как Public (а переменные, как нетрудно заметить — объявленные как Private).
Если в программе есть вложенные процедуры или функции (то есть процедура или функция вызывает другую процедуру или функцию, которая, в свою очередь, вызывает еще одну процедуру или функцию и.т.д.), то их взаимоотношения ("кто кого вызывает?") удобно при отладке отслеживать с помощью окна Стек Вызова (рис. 4.5), в котором видны все произошедшие вызовы.
Рис. 4.5. Окно Стек вызова.
В выпадающем меню в правом верхнем углу окна программы указаны все процедуры и функции данного модуля. Это меню можно использовать для быстрого перехода к необходимому месту модуля.
Главная процедура — собственно программа — не может иметь параметров (в ее заголовке должны стоять пустые скобки). Только таким процедурам можно назначать кнопки и сочетания клавиш для их вызова на выполнение, и только они будут присутствовать в диалоговом окне "Сервис — Макросы — Макросы". Это и понятно — ведь это окно не предусматривает возможности указывать параметры при запуске макросов, да и передавать параметр в сочетании клавиш весьма затруднительно.
Во время пошагового исполнения при отладке программы с процедурами или функциями имеется возможность отказаться от прохода по всем командам той или иной процедуры или функции, вызвав команду "Шаг с обходом" из меню Отладка или кнопкой на одноименной панели.
Рис. 4.6. Вызов команды Шаг с обходом.
Тогда вся процедура или функция будет выполнена безостановочно, как при обычном исполнении. Команда "Шаг с выходом" доступна в любой процедуре или функции, включая главную, и выполняет в обычном режиме все команды до конца процедуры или функции, переходя затем в режим пошагового исполнения в вызвавшей программе. Данные возможности позволяют отлаживать процедуры и функции по отдельности, что упрощает процесс поиска ошибок и их коррекции.
Разбивая программу на отдельные процедуры и функции, вы получаете возможность легко использовать повторно одни и те же фрагменты кода, обращаясь к ним из программы по мере надобности.
4. Операторы цикла и перехода.
Если необходимо повторить ту или иную группу операций несколько раз, то используются операторы цикла: Do… Loop, For…Next и While… Wend. Для проведения какой-либо
операции или группы операций над однотипными объектами используется оператор For Each…Next.Если необходимо совершить те или иные действия в зависимости от наличия или отсутствия выполнения какого-либо условия или в зависимости от значения той или иной переменной, используются операторы условия: If… Then…Else и Select Case.
Если необходимо совершить переход к другой части той же программы, то используется оператор GoTo "имя метки". Там, куда должен быть совершен переход, на отдельной строке должна стоять метка с соответствующим именем, а после нее — двоеточие.
Подробное описание функций, особенностей и синтаксиса всех этих операторов можно получить в справочной системе редактора Visual Basic for Applications, поэтому не стоит здесь на них останавливаться.
5. Работа с формами.
Формы — это окна интерфейса программы. С их помощью можно сообщать пользователю необходимую информацию или получать ее от него. Для создания форм используются средства редактора Visual Basic for Applications.
Создав форму (из меню правой кнопки мыши в Менеджере проектов выберите команды "Вставить — UserForm") или дважды щелкнув на имени существующей формы, можно попасть в окно Дизайна форм. На появившейся панели инструментов "Панель управления" (если ее нет, то ее можно вызвать из меню "Вид — Панель элементов") представлены элементы, которые можно использовать в формах программ на Visual Basic for Applications (рис. 4.7). Этот набор на настоящее время идентичен во всех версиях Microsoft Office, так что рассмотрим его подробнее.
Итак, назначение элементов набора таково — если смотреть слева направо и идти сверху вниз.
Рис. 4.7. Панель инструментов с компонентами форм. Пояснение в тексте.
1. Поле отображения текста — отображает текстовую информацию (рис. 4.8)
Рис. 4.8. Поле отображения текста.
2. Поле ввода текста — дает пользователю возможность ввести текстовую информацию (рис. 4.9).
Рис. 4.9. Поле ввода текста.
У Поля ввода текста помимо очевидного отличия — собственно возможности ввода в него текста пользователем — есть еще та особенность, что находящийся в нем текст можно выделить и скопировать, в то время как обычное Поле отображения текста этого не позволяет. Поэтому для размещения на форме доступной для копирования пользователями через буфер обмена информации (например, e-mail — адреса автора, ссылки на его сайт) лучше использовать именно Поле ввода текста, при необходимости запретив его изменения и придав ему вид обычного текста, убрав границы (как это сделать — смотрите ниже).
Текст, отображаемый в полях отображения и ввода текста при запуске формы, можно задать как заранее — с помощью Окна Свойств, так и программно.
3. Несколько видов списков — средства выбора варианта, вроде выпадающего списка шрифтов в Word (рис. 4.10). Значения элементов списков задаются только в программе — при
Рис. 4.10. Выпадающий список.
4. Флажок (рис. 4.11) — элемент, который независимо от других может находиться в трех состояниях: включенном, выключенном (могут быть определены как пользователем — кликом на флажке, так и программистом) и неактивном (определяется программой).