* Если программа работает со значениями дат и времени, попробуйте задать ей самые разные даты (в том числе и 29 февраля) и самое разное время суток (в том числе и полночь). Испробуйте не только разные значения даты и времени для переменных, но и проверьте работу самой программы при условии разных дат и разного времени. Для этого не нужно вставать среди ночи или ждать следующего года- просто установите для своего компьютера подходящие показания системных времени и даты.
Во время тестового запуска программы внимательно наблюдайте за ходом ее выполнения, чтобы не пропустить даже малейших признаков ошибок. Внимательно проанализируйте документ и убедитесь в наличии всех изменений, которые должны были появиться после выполнения программы непредусмотренных изменений тоже быть не должно. Обращайте внимание на точность и правильный формат каждого из результатов, выводимых программой на экран или помещаемых в документ. В идеале, нужно проследить и за значениями всех переменных в ходе выполнения программы, чтобы быть уверенным, что при этом тоже не возникает никаких неожиданностей. (О том, как это сделать, я расскажу в следующем разделе.) И ясно, что если уж VBA сообщит вам об ошибке выполнения, то наличие проблемы очевидно.
Если вы обнаружите ошибки, к отладке нужно отнестись со всей серьезностью. В противном случае лучше вообще считать, что ошибок нет, потому что их не бывает и быть не может.
Комбинации клавиш для отладки
В табл. 9.1 перечислены комбинации клавиш, которые используются при отладке. Подробно каждую из них я рассмотрю дальше в настоящей главе.
Построчное выполнение кода (пошаговое)
Построчное выполнение кода без построчного выполнения отдельных процедур
Выполнение кода до точки вставки
Добавление точки останова
Удаление всех точек разрыва
Определение следующей инструкции, которая будет выполняться
Добавление контролируемого выражения
Выполнение отладочного кода или возвращение сведений об ошибке обращения к процедуре
Пошаговое выполнение отладочного кода или возвращение сведений об ошибке обращения к процедуре
Ключ к отладке программы кроется в режиме паузы VBA. Режим паузы - это временная остановка выполнения программы на некотором операторе в программном коде. Поскольку в этом случае программа еще ''живет", вы получаете возможность проверить текущие значения всех ее переменных. Кроме того, начиная с этого момента, вы получаете возможность использовать команды Step, чтобы продолжить выполнение программы в пошаговом режиме, по одному оператору за шаг, и наблюдать за соответствующими изменениями значений переменных при этом будет видно, получают переменные ожидаемые значения или нет.
Подробности такой работы с переменными и командами Step будут рассматриваться в этой главе позже.
На рис. 9.1 показан вид окна редактирования VBA-процедуры в режиме паузы. Если не считать желтой подсветки строки и стрелки на поле слева, указывающей на оператор, который должен выполняться следующим, то это окно редактора Visual Basic выглядит практически так же, как и при обычном редактировании программного кода.
Рис. 9.1. Процедура VBA в режиме паузы
На самом деле, в режиме паузы вы можете редактировать свой программный код прямо во время выполнения программы, внося изменения и добавляя совершенно новые строки программного кода по необходимости или по своему желанию. Это предусмотрено не для забавы - это очень удобное средство отладки, преимуществами которого нужно обязательно научиться пользоваться (подробнее об этом - ниже, в разделе "Добавление и редактирование программного кода в режиме паузы").
Имеется целый ряд возможностей для перевода программы в режим паузы, который можно сравнить со стоп-кадром анимации.
* Запуск программы сразу в режиме паузы с помощью команды Step Into (см. ниже раздел "Сквозь программу по шагам").
* Назначение точки останова строке программного кода. После того как программа при выполнении дойдет до оператора, с которым связана точка останова, выполнение прервется, и программа перейдет в режим паузы.
* Помещение в программный код оператора Stop. После выполнения этого оператора программа переходит в режим паузы, приготовившись продолжить выполнение с оператора, следующего за оператором Stop.
* Щелчок на кнопке Break (Пауза), выбор Run=Break из меню или нажатие комбинации клавиш во время выполнения программы. Используйте эту возможность для восстановления контроля над программой, которая по каким-то причинам не желает останавливаться сама. Никто не сможет предугадать, где при этом программа остановится, но зато после остановки у вас появится возможность увидеть, где это произошло.
Читать дальше