Как оформить VBA код и сделать его читабельным

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

Предположим, у вас есть идея интересной программы и понимание того, как реализовать ее на практике. Но чтобы сохранить эту идею, необходимо сразу подумать, будет ли легко разобраться в коде через шесть месяцев. Ведь за такой продолжительный срок можно легко забыть алгоритм написанной программы. Так устроен человеческий мозг. Это необходимо, чтобы быть более когнитивно гибким. Но этот механизм в данном случае будет мешать. 

А если этот код будет читать другой человек, ему придется долго объяснять, как все работает. И это если сам автор кода будет его понимать спустя такой длительный промежуток времени. На это уходит много сил и времени.

Сегодня мы рассмотрим такие важные понятия, как комментарии, отступы и переносы строк, которые в разы увеличат легкость восприятия кода.

Комментарии

Самый простой способ увеличить читаемость кода – добавлять комментарии, в которых объясняется смысл того или иного пункта алгоритма. Они не выполняются интерпретатором, не оказывают влияния на результат программы, а необходимы они самому программисту или команде, чтобы понимать значение кода.

Чтобы добавить комментарий, необходимо указать значок апострофа (‘). В редакторе такая строчка сразу подчеркивается зеленым цветом, чтобы можно было ее легко и быстро отличить от основного кода. Рассмотрим такой пример, который показывает, как функционируют комментарии.

‘Подпрограмма для поиска ячеек A1-A100 для выбранного активного листа

‘или найти ячейку, в которой содержится указанная строка

Sub Find_String(sFindText As String)

Dim i As Integer           ‘Целое число применяется в цикле ‘For’

Dim iRowNumber As Integer   ‘Целое число, означающее результат’

iRowNumber = 0

‘Цикл через ячейки A1-A100 выполняется до тех пор, пока не будет обнаружен текст ‘sFindText’ 

For i = 1 To 100

If Cells(i, 1).Value = sFindText Then

‘Нахождение такого же содержимого

‘Сохранение текущего номера строки и завершение цикла

iRowNumber = i

Exit For

End If

Next i

‘Окно для информирования того, кто запускает макрос

‘о том, что ячейка обнаружена. Также оно сообщает номер строки.

If iRowNumber = 0 Then

MsgBox «String » & sFindText & » not found»

Else

MsgBox «String » & sFindText & » found in cell A» & iRowNumber

End If

End Sub

Не стоит волноваться, если не удается понять этот код, поскольку вы пока можете не знать некоторых тем. Этот пример приведен, просто чтобы продемонстрировать, как работают комментарии в реальном коде.

Конечно, бывает лень добавлять комментарии, поскольку в моменте вы можете все понимать. Но важно делать над собой усилия. Несколько минут, инвестированных в то, чтобы повысить читабельность кода, позволит сохранить кучу времени в дальнейшем.

Отступы кода

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

Переносы строк

Это еще один способ повысить читабельность кода. Чтобы разделить одну строку на две, необходимо добавить знак нижнего подчеркивания перед местом разрыва. Это говорит интерпретатору, что эта линия продолжается на следующей строке.

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

If (index = 1 And sColor1 = «red») Or (index = 2 And sColor1 = «blue») Or (index = 3 And sColor1 = «green») Then

Если добавить разрывы линий, внешний вид этого же фрагмента кода будет следующим.

If (index = 1 And sColor1 = «red») Or _

   (index = 2 And sColor1 = «blue») Or _

   (index = 3 And sColor1 = «green») Then

Когда оператор If разрывается на три линии, вы можете видеть все условия в отдельности, и это позволяет быстро понять, какие из них выставлены для конкретного условного оператора. Этот пример показывает, как работа над внешним видом кода может сделать его читаемым и избежать нелепых багов или ошибок, которые придется исправлять долго и мучительно.

ОфисГуру
Adblock
detector