Есть несколько методов, которые вы можете использовать.
Эти два были упомянуты
Использование F8 и Shift-F8 для перехода по программе
Добавление остановок (и последующее удаление)
Другие
Используйте глобальную переменную для создания коллекции. Используйте его в качестве стека и используйте интересующие вас подпрограммы push и and pop. И наоборот, ничего не высовывайте, и вы получите след.
Используйте часы для контроля и прерывания в условиях выбора. Вы можете настроить практически любое условие, чтобы нарушить.
Создайте глобальную строку и задайте свои процедуры при их вводе. Контролируйте это через Часы.
Используйте Debug.Print в своем коде. Также, в отличие от Stop, вы можете оставить их без изменения производственного кода.
Используйте объект файловой системы для создания текстового файла в качестве журнала.
Иногда проблема возникает только в версии Complied, тогда вам нужно использовать MsgBox или войти в текстовый файл. MsgBox может изменять поведение сложных взаимодействий пользователя с формами.
Это все методы, которые я использовал при отладке приложения. Если бы мне пришлось следить за приложением, я бы использовал Debug.Print. Если это не сработает, выполните вход в текстовый файл.
Если у вас что-то действительно сложное происходит, я рекомендую переместить весь ваш код из событий в классы, реализующие шаблон команд. Ваши классы команд должны взаимодействовать с формой и интерфейсом.
В методе Execute командных классов вы увидите что-то вроде
<save the current state>
<Do your original code>
<save the modified state>
<push the command onto a stack>
То, что произойдет, это то, что вы получите список всех команд, которые вы выполнили (даже такие как наведение мыши) с состоянием, с которым они столкнулись, и измененным состоянием. Затем вы можете исследовать каждый объект по очереди, чтобы увидеть, что происходит. Это почти эквивалентно созданию Undo / Redo
Обратите внимание, однако, что такие вещи, как MouseOver, могут помещать множество классов в стек команд, поэтому вам придется тщательно структурировать свои тесты или перегружать информацией. Помните, что вы всегда можете пропустить добавление команды в стек.
Недостатком использования команд является то, что вы пошли дальше отладки до редизайна. Вы сами решите, стоит ли решать эту проблему.