Обработка ошибок Применение окна Watches при обнаружении ошибок в программах VBA

          Назад



6.2.6 Окно Watches


Отладка и обнаружение ошибок в программах VBA, окно Watches, создание наблюдаемых выражений

Окно Watches позволяет контролировать ход выполнения программы, выполняя "наблюдение" в соответствии с заданными вами условиями. При работе с ним вам вначале потребуется определить значение, которое послужит сигналом к тому, чтобы вмешаться в ход выполнения программы. Это значение называется контролируемым выражением. Оно может быть совсем простым, например, nResult = 10, а может быть сложным, например:

InStr(oDoc.Fullname, " Document") <> 0

Создать контролируемое выражение можно так:

  • щелкнуть по переменному/свойству/выражению в окне редактора кода правой кнопкой мыши и в контекстном меню выбрать Add Watch. В диалоговое окно Add Watch будет автоматически помещено данное выражение;
  • воспользоваться командой Add Watch из меню Debug;
  • воспользоваться командой Quick Watch из меню Debug. В этом случае в окно Watch будет помещено готовое выражение. В качестве условия для "срабатывания" в него будет помещено текущее значение переменной/свойства. Это контролируемое выражение в случае необходимости можно будет отредактировать;
  • перетащить выражение из кода в окно Watches (его можно, как и все остальные, открыть через меню View).

В любом случае откроется окно Add Watch. В нем вы должны написать (или дописать) контролируемое выражение, чтобы оно возвращало true или false — как в конструкции IF, выбрать "область действия" данного контролируемого выражения (в виде процедуры или модуля), а также принять главное решение: что делать в ходе наблюдения. Вариантов у вас три:

  • ничего не делать (просто менять значение в столбце Value в окне Watches);
  • переводить программу в режим паузы, если контролируемое выражение "сработало" (его значение стало равно true);
  • переводить программу в режим паузы, если значение контролируемого выражения изменилось.

Окно Watches позволяет отследить происходящее в вашей программе даже в самых тяжелых случаях, когда понять, почему все работает именно так, а не иначе, очень трудно.




Далее