Отладка и обнаружение ошибок в программах VBA, окно Immediate, просмотр значений переменных, выполнение команд в окне Immediate
Это — мое любимое средство отладки.
В окне Immediate (вызвать его можно через меню View или <Ctrl>+<G>) можно просматривать или изменять значения переменных и свойств объекта. Просмотр может выглядеть так:
Print nResult
Print oDoc.FullName
или еще проще:
?nResult
?oDoc.FullName
Print в данном случае — это метод объекта Debug. Вывод в окно Immediate можно произвести при помощи этого объекта и просто из кода программы:
Debug.Print nResult
Преимуществом этого метода перед обычным MsgBox() является то, что при работе не в отладочном окружении (то есть, когда ваша программа уже эксплуатируется пользователями) все вызовы методов объекта Debug просто игнорируются. (У этого объекта есть еще метод Assert() — переход по условию).
Изменение значений перемененных и свойств в окне Immediate производится точно так же, как в коде программы.
В окне Immediate можно также вызывать процедуры и функции вашей программы или методы объектов — точно так же, как в коде программы. Microsoft рекомендует перед вставкой в программу проверять потенциально опасный код (например, который может завесить систему) в этом окне.
А можно использовать это окно просто как калькулятор, вводя там выражения вида
Print 25*115
Пример окна Immediate с некоторыми выполненными действиями представлен на рис. 6.3
Рис. 6.3 Пример применения окна Immediate
Чтобы не печатать в окне Immediate выражения и имена переменных, которые уже есть в коде, можно воспользоваться перетаскиванием участков кода в окно Immediate из окна редактора кода с нажатой клавишей <Ctrl> (чтобы происходило копирование).