Отладка кода программы (процедуры) в редакторе 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 станет недоступным для нажатия.
При обнаружении ошибки компилятор откроет процедуру с ошибкой и выделит ее. После исправления ошибки, проведите следующую попытку компиляции проекта, и так до исправления всех ошибок.
Пример отладки кода
Скопируйте следующую процедуру и вставьте ее в любой программный модуль:
1 2 3 4 5 6 7 8 |
Sub Primer() Dim x, y, z x = 525 y = x * 2 Debug.Print "y = " & y z = x & y Debug.Print "z = " & z End Sub |
Откройте через меню View окна Immediate Window и Locals Window. Установите курсор внутри вставленной процедуры.
Нажимайте последовательно клавишу F8 и наблюдайте за происходящим. В конце отладки сформируется следующая картина:
После завершения отладки окно Locals очищается, записи в окне Immediate сохраняются.
Пример проверки синтаксиса кода VBA Excel с помощью компилятора.
Добавьте к любой строке кода отлаживаемой процедуры точку и нажмите в меню Debug на пункт Compile VBAProject. Компилятор укажет на ошибку.