Visual Basic предлагает еще один способ отслеживания значений переменных и свойств, который называется наблюдением за выражениями. Наблюдаемые выражения (watch expressions) - это любые определенные пользователем выражения Visual Basic, позволяющие просматривать значения многих переменных или выражений. Конечно, наблюдаемые выражения должны быть корректными с точки зрения языка VBA.
Существует три режима наблюдения за выражениями, которые задаются выбором соответствующих переключателей в диалоговом окне Add Watch (Добавление наблюдаемых выражений) (рис. 12.9).
Режим Watch Expression (Наблюдаемое выражение) - отслеживаются значения заданных выражений без всякого влияния на ход выполнения приложения.
Режим Break When Value Is True (Останов, если значение истинно) - выполнение процедуры приостанавливается, если наблюдаемое выражение принимает значение True.
Режим Break When Value Changes (Останов, если значение изменилось) - выполнение процедуры приостанавливается, если наблюдаемое выражение изменило свое значение.
Используем в качестве наблюдаемого выражения переменную response.
Удалите из процедуры все точки останова.
Выделите имя переменной response в процедуре Ошибка.
Выполните команду Debug > Add Watch (Отладка > Добавить наблюдаемое выражение), чтобы открыть диалоговое окно Add Watch (рис. 12.9).
Рис. 12.9. В этом диалоговом окне задаются режимы наблюдения за выражениями
Поскольку в процедуре выделено слово response, то оно автоматически появится в поле Expression (Выражение) диалогового окна Add Watch. He изменяйте установки в секции Context (Состояние), где задано, из какой процедуры какого модуля наблюдается переменная (другими словами, здесь задается область видимости наблюдаемого выражения).
Установите переключатель Break When Value Changes.
Щелкните на кнопке ОК.
Если хотите быстро создать наблюдаемое выражение, выделите нужное выражение (например, имя переменной) в окне кода и выполните команду Debug > Quick Watch (Отладка > Быстрое наблюдение) либо нажмите комбинацию клавиш <Shift+F9>. Наблюдение в этом случае будет проводиться в режиме Watch Expression, т.е. без вмешательства в ход выполнения процедуры.
Нажмите <F5> для начала выполнения процедуры.
Щелкните на кнопке Отмена в окне ввода. Процедура перейдет в режим останова, так как переменная response изменила свое значение. В редакторе Visual Basic появится окно Watches (Наблюдение), показывающее значение переменной response (рис. 12.10).
Нажмите <F5> для продолжения выполнения процедуры.
Рис. 12.10. Окно Watches показывает значения всех наблюдаемых выражений
Теперь, когда мы разобрались с ошибками, можно удалить наблюдаемые выражения. Для этого сделайте следующее.
Так как у нас только одна наблюдаемая переменная, то в поле Expression будет выделено слово response. Щелкните на кнопке Delete (Удалить), и наблюдение за переменной будет отменено.
Рис. 12.11. Это окно используется для редактирования и удаления наблюдаемых выражений