Как автоматический отступ или автоматический формат беспорядочного исходного кода?

Я работаю над базой данных, над которой работали другие ученики. Я использую MS Access и VBA 7.0. Код, который я оставил, использует много вложенных операторов If-Then и Until. Интервал/отступ кода был плохо выполнен. Многие строки не имеют отступов, а другие - с отступом. Чтение/понимание/редактирование кода затруднено.

Есть ли способ автоматического отступа или автоматического форматирования того, что внутри VBA? Есть ли функция внутри MS Access или VBA (без третьей стороны)?

Если нет, есть ли способ увидеть "гнезда" вложенных операторов If-Then? Я использовал MATLAB и видел что-то вроде того, что вы видите слева от столбца 1: http://www.mathworks.com/help/matlab/matlab_prog/section_secondlevel_highlight.png

Ответы

Ответ 1

Smart Indenter отлично работает, лично работаю в большой компании, и у нас нет прав администратора, поэтому я вставляю свой код VBA онлайн:

http://www.vbindent.com/?indent

Я надеюсь, что это поможет тем, кто находится в той же ситуации.

Ответ 2

Поскольку вам нужно понять код, вы можете также отступом его.

Серьезно: для эффективного анализа кучи кода я считаю, что исправление отступов "вручную" полезно. Поэтому я не вижу никакой ценности в расширителе кода. Вот шаги, которые я рекомендую:

  • Откройте модуль VBA, который вы будете исправлять.
  • Нажмите Ctrl-a, чтобы выбрать все.
  • Нажимайте Shift-Tab несколько раз. Это сдвинет весь текст влево. Теперь нет "плохо сделанных" отступов!
  • Добавьте отступы, работающие снизу вверх. Под "снизу вверх" я не имею в виду начало в конце текста в модуле. Вот что я имею в виду: идентифицируйте наименьшие структуры (например, оператор If()) и начните с них. Отложите их соответствующим образом.
  • Затем определите более крупные структуры и отступы. Так как чем больше содержат меньшие структуры, ваши прежние изменения будут по-прежнему вдаваться вправо, когда вы работаете.

Я копирую код взад и вперед из Notepad ++ при переработке больших фрагментов кода таким образом, потому что Notepad ++ имеет сокращающие время команды клавиатуры и лучшую подсветку синтаксиса, чем редактор VBA.

Во время посещения всех модулей найдите момент, чтобы Option Explicit находилась в верхней части каждого. Если код не компилируется, вам бы удалось исправить эти проблемы до любого из вышеперечисленных шагов (сумасшедшие отступы не должны мешать вам для этой работы). Затем, редактируя отступы, часто компилируйте код, чтобы вы знали, что вы случайно не вводите ошибки. "Как я могу вводить ошибки, вставляя вкладки", спросите вы? На этом этапе работы и, естественно, зависит от вашего мастерства, вы можете убирать код другими способами. Неразумно делать так много; но, возможно, немного, и вы хотите, чтобы компилятор работал на вас.

Ответ 3

Бесплатная надстройка может помочь вам:
- для автоматической подстановки в VBEditor: Smart Indenter или VBA Code Indenter

Не бесплатная надстройка: - сортировать функцию в модулях (и многое другое): MZ-tools