Чтобы разместить точку останова, просто щелкните на полях окна редактирования слева от соответствующей строки программного кода. Можно разместить точку останова и с помощью клавиатуры - для этого поместите курсор в нужную строку и нажмите
Можно разместить столько точек останова в разных строках программы, сколько вы сочтете необходимым. Нельзя только размещать точки останова в строках комментариев и строках с операторами, которые VBA на самом деле не выполняет, например в строках с объявлениями переменных.
Помните о том, что VBA останавливает программу и переключается в режим паузы после выполнения оператора, непосредственно предшествующего оператору с точкой останова. Другими словами, оператор с точкой останова останется пока невыполненным- с него предполагается продолжить выполнение программы после выхода из режима паузы.
Удаление точек останова
Исправив ошибки в программном коде или отказавшись на время от попыток их исправления, вы захотите удалить ненужные точки останова. Удаление точек останова даст возможность VBA при следующем запуске выполнять программу без лишних задержек. Удаляется существующая точка останова точно так же, как и ставится - щелчком на полях в окне редактирования или нажатием клавиши
Чтобы удалить все назначенные точки останова сразу, выберите из меню Debug=Clear All
Breakpoints или нажмите
Выяснение места остановки
Когда программа находится в режиме паузы, редактор Visual Basic подсвечивает оператор, который предполагается выполнить следующим. Для гарантии на полях около строки с этим оператором в окне редактирования программного кода появляется стрелка. То, что вы увидите, показано на рис. 9.4 (но чтобы представить его в цвете, пожалуй, без фантазии не обойтись).
Рис. 9.4. Не заметить строку с оператором, который должен будет выполняться следующим, просто невозможно (тем более, что эта строка обязательно будет на экране)
Если строка с оператором, выполняющимся следующим, присутствует на экране, не заметить ее подсветку просто невозможно. Но что делать после того, как вы полистаете текст программы или переключитесь в окно другого модуля? В таком случае найти этот оператор без специальных средств будет уже сложнее.
Здесь поможет специально предусмотренная для такого случая команда Show Next Statement (Показать следующий оператор). Выберите Debug=Show Next Statement, и редактор Visual Basic быстренько доставит вас к нужному оператору. Есть также команда, позволяющая выбрать в качестве следующего другой оператор, но она будет обсуждаться позже, в подразделе "Назначение другого следующего оператора".
Альтернатива точкам останова: оператор Stop
Точки останова использовать очень просто, но они имеют один недостаток: они временны. Если отлаживаемая программа достаточно сложна, скорее всего, вам не удастся привести ее в полный порядок за один раз. Точки останова не сохраняются в программном коде, поэтому, открыв проект в редакторе Visual Basic в следующий раз, вы их уже не увидите.
Эта проблема решается с помощью оператора Stop. Поместите этот оператор в программный код. и в соответствующем месте программа перейдет в режим паузы. Вместе с другими операторами программы операторы Stop будут сохраняться при сохранении проекта.
Желаете пример, господа? Извольте:
* * *
intДанныеCMapca = ПолучениеДанныхСМарса(1.5454)
Stop
MsgBox "Результат " & intДанныеCMapca /Z
* * *
Взглянув на этот пример, вы можете догадаться, что здесь оператор Stop используется для того, чтобы прозондировать подозрительные результаты, отображаемые в окне сообщения. Выполнение оператора Stop заставит перейти программу в режим паузы сразу после того, как процедура-функция ПолучениеДанныхСМарса присвоит свое значение переменной. Вы получите возможность проверить значения обеих переменных, используемых для вычислений в следующей за оператором Stop строке, чтобы выяснить, какая из переменных стала источником проблемы.