Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в 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 по тематическим разделам со ссылками на все статьи.

    Добавить комментарий

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