Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Debug — отладка программы

    Отладка кода программы (процедуры) в редакторе VBA Excel. Горячие клавиши для команд меню Debug, окна Immediate и Locals, пункт Compile VBAProject.

    Команды меню Debug

    Команды меню Debug редактора VBA Excel предназначены для отладки кода программ (процедур). Вызвать их можно как через меню, так и сочетанием клавиш.

    Горячие клавиши для вызова команд меню Debug:

    Команда Горячие клавиши Описание
    Step Into (один шаг) F8 Запускает режим отладки и выполняет операторы кода по одному, в том числе в вызванных процедурах
    Step Over (шаг с обходом) Shift+F8 Выполняет вызванную процедуру не пошагово, а как единое целое, и переход к следующему оператору отлаживаемой программы
    Step Out (шаг с выходом) Ctrl+Shift+F8 При нахождении в вызванной процедуре выполняет оставшиеся ее операторы и переход к следующему оператору отлаживаемой программы
    Ran To Cursor (до курсора) Ctrl+F8 Выполняет операторы отлаживаемой процедуры до курсора
    Toggle Breakpoint (точка останова) F9 Устанавливает точку останова
    Compile VBAProject (компиляция) Выполняет компиляцию проекта VBA

    Окна Immediate и Locals

    Окна Immediate Window и Locals Window открываются через одноименные пункты меню View главной панели инструментов редактора VBA. Окно Immediate можно вызвать сочетанием клавиш «Ctrl+G».

    В окне Immediate при отладке программы отображаются строки, возвращенные методом Debug.Print.

    Окно Locals показывает переменные и их содержимое во время приостановок выполнения кода. Значения переменных можно не только наблюдать, но и изменять их непосредственно в окне Locals. Далее процедура будет выполняться с новыми значениями переменных.

    Пункт Toggle Breakpoint

    Команда Toggle Breakpoint устанавливает точку останова программы в том месте, где стоит курсор. Но установить точку останова можно проще: кликните на сером поле слева от строки кода, на которой надо остановиться, и точка останова будет вставлена.

    Когда вы нажимаете клавишу F5 (Run Macro), программа выполняется до точки останова, строка с точкой останова не выполняется. На этом этапе можно просмотреть переменные в окне Locals и отладочную информацию, выведенную в окно Immediate с помощью метода Debug.Print.

    Пункт Compile VBAProject

    Если вам необходимо проверить все процедуры проекта на соответствие правилам синтаксиса VBA, проведите попытку компиляции проекта, нажав пункт Compile VBAProject в меню Debug.

    Если ошибок нет, то ничего не произойдет, только пункт Compile VBAProject станет недоступным для нажатия.

    При обнаружении ошибки компилятор откроет процедуру с ошибкой и выделит ее. После исправления ошибки, проведите следующую попытку компиляции проекта, и так до исправления всех ошибок.

    Пример отладки кода

    Скопируйте следующую процедуру и вставьте ее в любой программный модуль:

    Откройте через меню View окна Immediate Window и Locals Window. Установите курсор внутри вставленной процедуры.

    Нажимайте последовательно клавишу F8 и наблюдайте за происходящим. В конце отладки сформируется следующая картина:

    После завершения отладки окно Locals очищается, записи в окне Immediate сохраняются.

    Пример проверки синтаксиса кода VBA Excel с помощью компилятора.

    Добавьте к любой строке кода отлаживаемой процедуры точку и нажмите в меню Debug на пункт Compile VBAProject. Компилятор укажет на ошибку.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.