~ Использование отступов в программном коде
~ Разделение операторов на несколько строк
~ Добавление комментариев для объяснения программного кода
В предыдущих главах, когда мне приходилось говорить о различных компонентах программного кода в VBA-программах, я использовал импровизированные и чисто описательные формулировки. Теперь пришло время дать определения этих компонентов по крайней мере на уровне, близком к формальному. Сначала мы с вами классифицируем все элементы в иерархии программного кода VBA, а затем обсудим их по отдельности более подробно.
Затем мы поговорим о том, как создать читабельный, понятный и работоспособный программный код. Здесь вы узнаете о правилах и соглашениях, касающихся выбора имен для переменных, процедур и других объектов. Здесь же вы найдете и рекомендации по форматированию программного кода для улучшения его восприятия, а также по добавлению в программный код поясняющих комментариев (чтобы вы в будущем не мучались над вопросом, почему эта странная процедура написана именно так, а не иначе).
Строительные блоки программы
VBA-программа - это не случайный набор инструкций компьютеру. Строки программного кода организованы в процедуры, которые размещаются в модулях, а последние, в свою очередь, размещаются в проектах.
Определение программы
Так что же такое программа? Говоря формально, программа- это цельная, способная функционировать (или неправильно функционировать) совокупность программного кода. Программа должна содержать один или несколько операторов, которые выполняются в порядке, заданном программистом.
Но программа не является официальным объектом VBA. VBA распознает по именам процедуры, модули и проекты, но не программы. Любая VBA-программа обязательно должна содержать хотя бы одну процедуру- просто потому, что VBA может выполнять только операторы, помещенные в процедуры, - но зато программа может управлять двумя или сразу многими процедурами, помещенными в один или несколько модулей из одного или нескольких проектов.
В этой книге в основном речь идет о программах, имеющих дело только с одним проектом. Краткий обзор использования в VBA-программе нескольких проектов вы найдете в главе 14.
Пример программы
Чтобы сделать обсуждение иерархии VBA-элементов немного менее абстрактным, давайте рассмотрим приведенный ниже программный код модуля. Этот модуль содержит все упомянутые выше элементы (за исключением проекта, поскольку модули содержатся в проектах, а не наоборот). После текста модуля идет обсуждение составляющих его элементов.
Думаю, сначала нужно объяснить, что делают в этом примере программы. Сначала создается совокупность (.массив) из шести целых величин, которым приписываются случайные значения от 1 до 1000. Затем после подсчета числа значений, превышающих определенное пороговое значение, а именно значение 500, полученный результат отображается в небольшом диалоговом окне.
Option Explicit
Const Maximum As Integer = 500
Const HowMany As Integer = 5
Dim ListOfNumbers() As Integer
Sub MAIN()
_ Dim ItemsInList, n, x As Integer
_ ReDim ListOfNumbers(HowMany)
_ Randomize
_ For x = 0 To HowMany
ListOfNumbers(x) = int( ( 1000 * Rnd) + 1)
_ Next x
_ n = CountBigNumbers()
_ MsgBox (There were n values greater than _
_ Maximum)
End Sub
Function CountBigNumbers()
_ Dim Counter As Integer, y As Integer
_ Counter = 0
_ For = 0 To HowMany
If ListOfNumbers(y) Maximum Then
Counter = Counter + 1
End If
_ Next у
_ CountBigNumbers = Counter
End Function
Весь этот блок программного кода в своей совокупности представляет собой модуль. Он состоит из ряда операторов, организованных в три раздела. Это раздел объявлений, начинающийся оператором Option Explicit, процедура типа Sub, начинающаяся оператором Sub
MAIN(). и процедура типа Function, начинающаяся оператором Function CountBigNumbers ( ). Большинство операторов этого модуля занимают по одной строке, но оператор в строке, начинающийся с выражения MsgBox, заканчивается в следующей строке.
Иерархия VBA
Теперь, после знакомства с приведенным выше примером программы, вам легче будет понять следующие определения и описания строительных блоков программного кода VBA.
* Оператор - это наименьшая, способная выполняться единица VBA-кода. Оператор может объявлять или определять переменную, устанавливать параметр компилятора VBA или выполнять какое-либо действие в программе. У допустимого оператора много сходства с законченным предложением - оператор должен содержать правильный набор частей речи, иначе это не оператор вообще.
* Процедура - это наименьшая единица программного кода, на которую можно ссылаться по имени. Это также наименьшая единица программного кода, которая может выполняться независимо. VBA распознает два главных типа процедур - Sub и Function. Любая процедура содержит один или несколько операторов, помещенных между двумя специальными операторами, - объявлением процедуры в начале и оператором