VBA для тех кто любит думать


VBA и Office XP - часть 63


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

В Visual Basic for Applications любая процедура, получающая данные из другой программы, имеет следующий формат:

Sub "Название процедуры"("Получаемая переменная" As "Тип данных получаемой переменной")

"Текст процедуры"

End Sub

Получаемых переменных может быть несколько. Для каждой желательно указать ее тип, но это можно опустить.

Вызов процедуры происходит так же, как и вызов любой команды Visual Basic for Applications - путем указания ее названия и передаче ей соответствующих значений переменных:

 

Sub Main()

Dim a As Integer

a = 1

uvelich a, 3

MsgBox a

End Sub

 

Sub uvelich(b As Integer, c As Integer)

b = b + c

End Sub

 

В этом примере из процедуры Main вызывается процедура uvelich, которой передаются два параметра - a (равное 1) и второй - число 3. Процедура uvelich увеличивает первую переданную переменную на значение второго переданного числа, а затем Main

отображает результат вычислений. Стоит помнить, что если в заглавии процедуры указываются типы данных переменных, то и в вызывающей процедуре передаваемые значения должны быть определены и иметь тот же тип, иначе Visual Basic for Applications выдаст сообщение об ошибке[5].

Переменные могут передаваться в процедуру двумя способами - только для чтения или и для изменения. По умолчанию переменные могут в функции изменяться. Как, скажем, в вышеприведенном примере - переменная "a" была передана в процедуру (под именем "b", чтобы лучше проиллюстрировать этот момент) и там изменилась (к ней прибавили величину переменной "с"), и затем в исходной программе она тоже стала иметь новое измененное значение.

Если же не нужно, чтобы переменная в процедуре менялась (скажем, процедура использует переменную для каких-то своих нужд, не связанных с исходной программой), то перед именем этой переменной в заголовке процедуры следует поместить инструкцию ByVal.


Начало  Назад  Вперед



Книжный магазин