Строительные блоки программы
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 распознает два главных типа процедур - Sub и Function. Любая процедура содержит один или несколько операторов, помещенных между двумя специальными операторами, - объявлением процедуры в начале и оператором завершения процедуры (End Sub или End Function) в конце.
* Модуль - это именованная единица, состоящая из одной или нескольких процедур, а также объявлений, относящихся ко всем процедурам в модуле. Хотя VBA и допускает размещение всех процедур в одном модуле, имеет смысл разместить процедуры в нескольких модулях в соответствии с выполняемыми этими процедурами задачами, чтобы с ними было проще работать.
* В VBA два типа модулей. Чаще всего используется стандартный модуль, который содержит программный код, предназначенный непосредственно для выполнения. Другим типом модуля является модуль класса, в котором определяются пользовательские объекты с их свойствами и методами. Краткое описание модулей класса вы найдете в главе 14.
Читать дальше