фрагмента программного кода VBA пропустит все операторы между GoTo ПослеПропуска и оператором, следующим за меткой ПослеПропуска:. - 16
GoTo ПослеПропуска
A = В + С
D = А + Е / F
G = B + D
ПослеПропуска:
: MsgBox '" Format(Now, "dddd"
Когда пропущенный фрагмент понадобится снова, просто удалите строку с оператором GoTo или превратите ее в комментарий. :
Рис. 9.5. Назначение другого оператора, предназначенного для выполнения следующим, дает возможность повторять выполнение фрагментов программы, чтобы разобраться в них подсказки
Замечательная возможность автоматической подсказки значений в VBA позволяет видеть текущее значение любой переменной в программе. Находясь в режиме паузы, задержите на секунду указатель мыши на имени нужной вам переменной, и на экране появится окно подсказки - небольшой прямоугольник с именем и текущим значением переменной в нем (рис. 9.6).
Если же прямоугольники с подсказками значений на экране не появляются, проверьте, чтобы был установлен флажок Auto Data Tips (Автоматическая подсказка значений) на вкладке Editor (Редактор) диалогового окна Options (Параметры).
Редактор Visual Basic позволяет также увидеть тип и область видимости переменной, хотя соответствующая информация и не появляется автоматически. Поместите курсор между буквами или около имени переменной и нажмите <Ctrl+I>, и на экране появится окно подсказки Quick Info (Краткая справка) с этой информацией. Для этого не обязательно находиться в режиме паузы, что особенно удобно при работе с большими программами, когда объявления переменных оказываются где-то далеко в самом начале программы. Пример того, что вы можете увидеть в прямоугольнике краткой справки, показан на рис. 9.7.
Рис. 9.7 Отображение подсказки Quick Info для переменной
Немедленное вознаграждение в окне Immediate
Чтобы открыть окно Immediate (Окно немедленного выполнения команд, рис. 9.8), нажмите <Ctrl +G> или выберите Viewolmmediate Window из меню. Окно Immediate предоставляет следующие возможности:
* видеть результаты вычислений и значения переменных, вывод которых можно направить в это окно с помощью метода Debug.Print;
* выполнять отдельные операторы сами по себе, не помещая их в процедуры: чтобы выполнить оператор в окне Immediate, просто напечатайте его там и нажмите <Enter>.
"Зачем это нужно?" - спросите вы. Отвечаю.
* Окно Immediate можно использовать просто как калькулятор. Напечатайте в нем выражение типа
Print (27 * 398) + 1414
затем нажмите <Enter>, и вы немедленно получите результат (см. рис. 14.8). При работе в окне Immediate вам нет необходимости указывать объект Debug.
* Можно направить в окно Immediate вывод промежуточных значений переменных и выражений при выполнении программы, разместив в подходящих строках программы операторы, вызывающие метод Debug.Print. По завершении выполнения программы вы получите возможность просмотреть сразу все выведенные значения (рис. 9.9), чтобы выяснить, все ли они правильны, а не рассматривать их по отдельности в разное время при пошаговом выполнении программы.
Рис. 9.8. Окно Immediate в действии
* В режиме паузы в окне Immediate можно отобразить значение любой переменной или свойства объекта с помощью оператора Print или изменить значение с помощью стандартного оператора присваивания. Можно также стандартным способом вызывать процедуры. При этом вы должны понимать, что в режиме паузы выполняемые в окне Immediate операторы могут иметь доступ только к переменным, объектам и процедурам, находящимся в области видимости той процедуры, которая выполняется в данный момент. Другими словами, результат выполнения оператора в окне Immediate будет тем же, что и результат печатания этого оператора в выполняемой в данный момент процедуре и работы его в ней.
Рис. 9.9. Пример вывода программы, использующей метод Debug. Print
Все переменные под присмотром в окне Locals
Если у вас на экране еще есть место, где можно разместить окно Locals (Окно локальных переменных), оно обязательно должно присутствовать на экране все время, пока вы занимаетесь отладкой программы в режиме паузы. Отобразить окно Locals на экране можно щелчком на соответствующей этому окну кнопке панели инструментов Debug или с помощью View=Local s Window из меню.
Как видно из рис. 9.10, в окне Locals автоматически отображаются имена, значения и типы данных всех переменных, доступных в выполняемой в данный момент процедуре. Эта информация обновляется редактором Visual Basic после выполнения любого из операторов, так что вы всегда будете видеть в окне Locals текущие значения переменных.
Рис. 9.10. Вид окна Locals в режиме паузы
Механика процесса
Как и ряд других окон редактора Visual Basic, окно Locals по умолчанию закреплено, но может отображаться и в виде свободно перемещаемого окна. Основы использования окон редактора Visual Basic обсуждались в главе 5.
Если нужная вам информация не помещается в столбце, помните о том, что ширину столбцов можно менять. Поместите указатель мыши на разделитель между заголовками столбцов и, когда он превратится в