Програмиране на VBA
Събитийно програмиране с Visual Basic for Application
...............................................4
..................................................................................................6
Оператори за контрол и предаване на управлението
.................................................11
.................................................................................................22
1.Основни понятия
Описание на редактора на VBA
От менюто
Tools
се избира
Macro
и след това
Visual Basic Editor
. Отваря се
прозорец на Microsoft Visual Basic.
Фиг.1.1
На второ ниво след името на проекта, се показват имената на основните
елементи, които се включват в един проект. Това са:
Microsoft Word
(или
Excel) Objects
(обекти в средата
на Word
или
Excel),
Forms
(прозорци, създадени от потребителя – потребителски форми)
Modules
(модулипрограми на
VBA).
Ако някои от тези елементи не присъстват, те се създават с командата
Insert
от
главното меню на
VB Editor.
1
На трето ниво се намират имената на създадените елементи от всяка група.
В групата на
Microsoft Excel Objects
се включва
This Workbook
(текущата
книга) и имената на всеки лист в нея, а в групата
Microsoft Word Objects
This Document
(текущият документ).
В групата
Forms
се включват имената на създадените потребителски
прозорци.
Елементи на
Modules
са имената на създадените модули в проекта, които се
наричат стандартни (за разлика от програмите, които са свързани с обект или
форма)
Под
Project Explorer
е диалоговият прозорец
Properties.
За всеки избран
елемент от дървото, в този диалогов прозорец се показват свойствата, които
потребителят може да променя.
Фиг.1.2
Обектите и формите имат два компонента: визуален (самият обект или форма) и
програмен код. Двата изгледа се превключват с командата
View/Object
(отваря се
прозорец с обекта или формата) и
View/Code
(отваря се прозорецът Code).
Елементите на
Modules
имат само един изглед – програмен код.
В прозореца
Code
се показва съдържанието на вече въведените процедури, в
които може да се правят корекции, както и да се въвеждат нови процедури.
2
Фиг.1.3
От менюто
View
на редактора на
VBA
могат да се отворят три спомагателни
прозорци
:
Immediate Window,
Locals Window и
Watch Window.
Прозорецът I
mmediate
се използва за извеждане на резултати („отпечатване") от
програма с командата
Debug.Print.
Операторите, въведени в този прозорец, се
изпълняват веднага, което помага при тестване на програми.
Прозорецът
Locals
показва стойностите на всички локални променливи
(дефинирани в текущата процедура).
Прозорецът
Watch
показва всички стойности на променливи или изрази, които са
избрани за наблюдение.
3
Фиг.1.4
Редакторът на VBA
може да бъде в един от трите режима:
на проектиране,
на изпълнение
на прекъсване.
Редакторът е в режим на проектиране D
esign Mode,
когато се пише код или се
проектира форма.
Когато се изпълнява командата
Run/Run,
преминава в режим на изпълнение.
Тогава се изпълнява процедурата, в която е точката на вмъкване.
Когато е в режим на изпълнение и
VBA
открие грешка, редакторът преминава в
режим на прекъсване и се извежда съобщение за грешка. Един от бутоните в прозореца
на съобщението за грешка е
Debug.
С този бутон изпълнението на програмата се
прекъсва и точката в който е грешката, се оцветява в жълто. В менюто на редактора има
команда
Debug,
която предлага различни възможности за откриване и отстраняване на
грешки.
2.Събитийно програмиране с Visual Basic for
Application
Основни концепции
Обектен модел
– обекти, свойства, методи, колекции
Управление на настъпващи събития с обектите в приложенията
– по време на
използване на приложението се случват определени събития. Събитията могат да
настъпят в резултат от действията на потребителя или след изпълнение на програма.
Например, затварянето на документ или промяната на размера на диаграма са събития.
С отделно събитие може да се свърже процедура, която ще се изпълни, когато събитието
се случи.
4
Смисълът на програмирането с VBA е да се контролират обектите, като се
променя външния им вид или те се принуждават да извършват различни действия.
Обектен Модел
Всяко приложение, включено в Microsoft Office има собствен обектен модел,
отразяващ специфичните му особености. Основните елементи на обектния модел са:
обекти
,
свойства
,
методи
,
събития
.
Обекти са всички елементи на приложение, които могат да се управляват със
средствата на VBA. Например:
в
Word
обекти са документ, абзац, отметки, таблици и др.,
в
Excel
обекти са книга, лист, област от клетки, диаграма и др. И двете
приложения имат сложни обектни модели.
Всеки обект има свойства и методи. Свойствата и методите на един обект се
наричат членове (
members
) на обекта.
Достъпът до обектите се осъществява чрез обектните променливи
–
обектната променлива е име на място от паметта, където се пази
адресът
на обекта. Тъй
като обектната променлива е указател, то е възможно към един обект да указват повече
от една променливи.
Свойства на обектите
Едно свойство на обекта представлява негова отличителна черта, характеристика
или атрибут. Например обектът – абзац има 34 свойства, между които са подравняване,
междуредие, лява и дясна граница и т.н.
Свойствата могат да приемат стойности от всеки валиден тип, дори обект.
Свойствата на обекта се променят като се променят стойностите им с команда от вида:
обект.свойство = израз
Свойството може да върне стойност с командата:
променлива = обект.свойство
Някои свойства могат да върнат обект, например свойството
Font
връща обект
Font
.
Някои свойства имат множество стойности и за улеснение при използването им
те се предлагат групирани в т.нар. изброители (
Enum
).
Метод
Методът е процедура, определяща действие, което може да се извърши с обекта.
Например, обектьтработен лист в Excel има метод
Protect
, който осигурява защита на
листа. Методите могат да имат аргументи, които уточняват как да се извърши
действието. Командата за прилагане на метод е:
обект.метод(аргументи)
Ако аргументите не са в скоби, получената (върнатата) стойност не се запазва. В
резултат от своето действие методът може да върне обект.
5
Колекции
Съществуват много обекти, които са еднотипни и могат да присъстват
едновременно. Например, абзаците или символите в един документ, клетките, редовете
или колоните в един работен лист и др.
За управлението на такива обекти в обектния модел са включени
обекти
колекции
. Те имат общо име и пореден номер (индекс). Обектитеколекции имат свои
свойства и методи. Колекциите обикновено имат свойство брой (
Count
), което е
достъпно само за четене, тъй като VBA автоматично актуализира броя на екземплярите
в колекцията. Колекциите имат метод за добавяне на елемент и метод за отстраняване
на елемент. Имат също така метод
Item
(екземпляр от колекция), позволяващ достъп до
точно определен обект по индекса или по името му. Този метод е подразбиращ се и
може да се пропусне:
Documents.ltem(2)
и
Documents^)
са еквивалентни.
Наследяване
Някои свойства и методи могат да връщат обекти, които се наричат
обекти
наследници,
а обектът, от който са създадени – родител. Един обект може да има много
родители и наследници.
Например обектът
Application
(приложение), е родител на всички обекти.
Връзката родителнаследник позволява при създаване на нов обект, неговите свойства да
бъдат присвоявани на всички обекти, които могат да са му родители.
Например
Font
(шрифт) е наследник на
Paragraph
(абзац) и
Selection
(маркиран
текст). Ако се създаде нов обект
Font
, неговите свойства могат да се присвоят на
различни абзаци и маркиран текст.
Създаване на потребителски интерфейс
VBA притежава възможности за създаване на потребителски прозорци, които се
наричат форми (
User Forms
).
Формите представляват визуален интерфейс и модули с
код, които се използват за комуникация с потребителя.
Контроли – елементи от инструментите –
Tools
. Примери за контроли са:
текстови полета, командни бутони, радиобутони. комбополе и др.
Контролите осигуряват визуален интерфейс с потребителя. Те имат методи,
които могат да се приложат от потребителя, свойства, които могат да се прочетат или
променят, и събития, за които може да се напише процедура. Когато в прозореца
User
Form
се изпълни някакво действие върху една контрола (щракване, двойно щракване,
маркиране на поле за избор, избор на радиобутон и др.), се отваря обвивка на процедура,
която ще обработва настъпването на събитието.
3.Основни елементи на VBА
Основни положения
6
Visual Basic for Application
се използва за съставяне на програми. Програма (или
програмен код) на VBA представлява оператори, които задават последователността от
действия, които трябва да се извършат.
Обикновено всеки оператор се записва на отделен ред. Възможно е на един ред да
се запишат повече оператори, които се отделят с двоеточие (:).
За да се чете по – лесно програмата, много дългите оператори могат да се
запишат на няколко реда. За да се покаже, че операторът продължава на следващият
ред, в края на реда се въвежда интервал и веднага след него знак за подчертаване ( _ ).
Типове данни
Данните, използвани от VВА се разделят надве основни групи: константи и
променливи. Операторът за описание на типа на данните има следния вид:
Dim
име
As
тип
,
където
име
е име на променлива,
тип
е един от допустимите за езика VBA тип данни, a
Dim
и
As
са служебни думи.
Имената могат да се състоят от букви, цифри и знак за подчертаване, без
интервали и могат да имат дължина от един до 255 символа. Първият символ в името
трябва да е буква.
Оператор за присвояване
Операторът за присвояване на стойност на променлива има вида:
име = израз
където
име е
име на променлива, а
израз е
правило за получаване на стойност.
В общия случай изразът се състои от променливи и константи, свързани със знаци
за операция. Операторът за присвояване се изпълнява, като първо се изчислява изразът,
след което в променливата се записва получената стойност. Извършваните действия
зависят от типа на данните, участващи в израза. Възможно е изразът да се състои само от
една променлива или константа.
Константи
Константите не променят стойността си по време на изпълнение на програмата.
Обикновено се представят със собствената си стойност и типът им се определя неявно в
зависимост от съдържанието им. Примери за константи са:
5 числова,
„ЮЗУ" символна,
# 1/1/2001 # дата.
Символните (низови) константи се заграждат с кавички, а датите – със знака # .
Възможно е на константите да се дават имена, като се описват със служебната дума
Const
.
Например
Dim Const
Vuz = „ЮЗУ" описва името Vuz като константа, т.е. Vuz
не може да променя съдържанието си.
Вградени константи
7
Във VBA
се използват и т.нар. вградени константи. Техният брой е много голям
(стотици) и имената им започват със символи, които определят с кое приложение могат
да се използват (
vb
,
wd
,
xl
и др.).
Например, ако започват с
vb
, те се използват с всички приложения
vbCr
се
използва за натиснат клавиш
Enter
(например за край на абзац), a
vbTab
– за клавиш за
табулация.
Съществуват и структури от групирани в категории вградени константи, които се
наричат изброители –
Enum.
Тези константи могат да се използват както с името им,
така и с конкретната стойност. Пример за изброител на константи за цветове:
Enum ColorConstant
vbBlack
= О
vbBlue
= 16711680
vbMagenta
= 16711935
vbCyan
= 16776960
vbWhite
= 16777215
vbRed
= 255
vbGreen
= 65280
vbYellow
= 65535
End Enum
Променливи
Една променлива може да бъде разглеждана като адрес в оперативната памет,
където се съхранява стойност. Тази стойност може да се променя многократно по време
на изпълнение на програмата. Всяка променлива има точно определен тип, който
определя какви стойности може да съхранява. Описанията на променливите, използвани
в програмата, обикновено се записват в началото. Например:
Dim
nom
As Integer
,
описва
nоm
като променлива от тип цяло число;
Dim
per
As Date,
ime
As String
,
описва
per
като променлива от тип дата, a
ime
– като променлива от тип символен низ
(стринг).
Типове данни
Числовите типове данни включват
Integer, Long, Single, Double и Currency
и се
използват за описание на променливи, които приемат числови стойности. Различават се
по големината числата, които могат да се представят.
Променливите от тип
Boolean
приемат една от двете възможни логическите
стойности
True
(истина) и
False
(неистина).
Данните от тип
String
(низ) представляват последователност от символи
(включени в кодовата таблица). Съществуват два ти па низови променливи – с
фиксирана дължина и с променлива дължина. Например, ако променливата
prof
е с
фиксирана дължина (10 символа), а променливата
name
е с променлива дължина, то те
трябва да бъдат описани по следния начин:
Dim
prof
As
String
* 10
8
Dim
name
As
String
Данните от тип
Date
се пазят и обработват като десетични числа, но може да им
се присвояват константи, които са записани във формат за дати. Например, операторът
Dim
Data
As
Date
описва променливата
Data
от тип
Date
.
Присвояване на стойност на променливи от посочените типове
данни
На променлива, която има някой от описаните no – горе типове, се присвоява
стойност с оператор за присвояване
(
име = израз
).
Задължително е типът на
променливата в лявата част на оператора да съответства на типа на израза в дясната
част. Различните типове данни могат да участват само в разрешения им вид изчисления.
Когато променливата е от числов тип, то в израза трябва да участват променливи и
константи от същия тип и да се използват знаци за аритметични операции ( + ,,*,/, ").
Когато променливата е от тип низ, може да се използва само знакът за операция
конкатенация(слепване на низове) „
&”
, като променливите и константите в израза също
са от тип низ. Логически стойности се получават в резултат на операции за сравнение (>,
<, = , <
>, >=, <
=) или логически операции
(And, Or, Not, Eqv, Xor
).
Пример
:
Dim
br
As
Long,
name
As
String
, datn
As
Date,
datk
As
Date
Dim
suma
As
Long,
bN
As
Boolean,
cena
As
Long
br = 100
name = „SWU"
datn = # 2/20/2001 #
datk = #4/15/2001 10:40#
suma = br * cena
•
name = name & „" & „София"
bN = datn > datk And name < > „SWU"
Променливите от тип
Variant
приемат всички типове данни, с изключение на
низовете с фиксирана дължина. Удобно е да се използва при променливи, на които могат
да се присвояват различни типове данни по време на изпълнение на програмата.
Променливите от тип
Object
заемат 4 байта от паметта, защото се съхранява
само указател (адрес) на обекта. За описание на променливи – обекти се използва тип
Object,
например:
Dim
pismo
As
Object
Този тип е твърде общ. Всяко приложение в
MS Office
има собствен набор от
различни обекти и типове за описанието им. Например, ако променливата pismo е име на
обектдокумент в
Word,
а променливата tabl е име на обектработен лист в
Excel,
за
описанието им се използват операторите:
Dim
pismo
As
Document
Dim
tabl
As
Worksheet
За присвояване на стойности на обектни променливи се използва операторът за
присвояване, като пред името на променливата се записва служебната дума
Set
:
9
Set
pismo =
ActiveDocument
на pismo се присвоява текущият документ в
Word.
Типът
User Define
се използва за описание на група от разнородни данни (запис).
Групата има общо име, но на всеки неин елемент също се дава име. Използва се при
описание на записи от база данни (ред от списък
в
Excel).
Например, променливата
St
,
представя данните за една стока:
Dim
St
As
User Define
M_ed
As
String
Norn
As
Long
Naim
As
String
EdCena
As Single
Ако не се посочи изрично типът на променливите, VBA присвоява тип
Variant
,
който е съвместим с всички типове, но заема най – много памет. За да се следи
автоматично дали всички променливи са описани, в началото на програмата се записва
операторът
Option Explicit.
При определяне на типа на променливите, автоматично се
присвояват начални стойности:
за числовите типове – 0,
за низ – „”(празен низ),
за обект – Nothing(няма указател).
Препоръчва се присвояването на начални стойности да се прави явно посредством
оператори за присвояване.
Масиви
Масивите представляват съвкупност от еднотипни променливи, които имат
общо
име
и се идентифицират с
поредния си номер (индекс
). Масивите се описват, като след
името в скоби се записват границите на индекса на масива, които определят броя на
елементите му. Например, операторът
Dim
uvod (1
to
10)
As Paragraph
описва едномерен масив от 10 (от 1 до 10) абзаца, a uvod(1) е първият от тях. Ако не се
посочи долната граница на индекса, тя се приема за 0. Например, следващият оператор
описва масив от 16 (от 0 до 15) клетки в работния лист:
Dim
razh(15)
As
Range
Когато при декларирането не е ясно колко елемента ще има масивът, той може да
се опише като динамичен, т.е. в скобите след името не се задават граници на индекса:
Dim
ime()
As String
Размерът на този масив може да се определи по – нататък в програмата с
оператора:
ReDim
ime(1
to
100)
Ако се наложи отново да се променя размерността на масива, за да не се изтрият
данните, съдържащи се в него, се добавя служебната дума
Preserve
. В този случай може
да се променя само горната граница на размера:
10
ReDim
Preserve
ime(1 to 200)
Възможно е да се използват и многомерни масиви. Например масивът Kat(1
to
10,1
to
20) е двумерен с 10 реда и 20 колони. Има две функции за работа с масиви, които
връщат долната и горната граница на индекса. Това са съответно
Lbound
и
UBound
.
Имена на променливите
Препоръчва се името на променливата да подсказва типа. Много програмисти
използват т.нар. Унгарска конвенция за съставяне на имена. На имената се поставят
представки, които подсказват типа на променливата. Найчесто употребяваните
представки са показани в таблиците:
Тип
Byte
Boolea
n
Integer Long
Singl
e
Doubl
e
Date String Varian
t
b, f
b, bt
I, c, int
lng, s
sng, s
str
dt
s, str
v
Тип
Char
t
Workboo
k
Workshee
t
Rang
e
Fon
t
Documen
t
Paragrap
h
Selectio
n
ch
wb, wbk
ws, wsk
rng
fnt
doc
para
sel
Във
VBA
съществува възможност типът на променливата да се определи, като се
постави определен символ в края на името:
Символ
%
&
!
#
@
$
Тип
integer
long
single
double
currency
string
Описание
цяло
число
дълго
цяло
число
числа с плаваща
запетая с
единична и двойна
точност
валута
низ
Например, операторът
Dim
name
$
определя променливата
name
като низ.
Област на действие на променливите
Променливите и константите имат определена област на действие, която
определя къде може да се използва (вижда) дадена променлива или константа.
Когато променлива или константа са описани в процедура, те могат да се
използват само в тази процедура и се наричат
локални
. Локалните променливи се
разрушават след края на процедурата, а при следващото й изпълнение отново се
създават.
Когато описанията на променливи и константи са записани в частта
(Declarations)
на прозореца
Code
в редактора на VBA, те са на ниво модул.
Променливите, декларирани на ниво модул, се запазват до края на изпълнението на
модула. Ако е необходимо една променлива да е локална, но да се запазва през цялото
време на изпълнение на модула, е необходимо пред името на променливата да се запише
служебната дума
Static
.
11
Когато пред името на променлива е поставена ключовата дума
Private
, то тя се
вижда във всички процедури на модула, а ако ключовата дума е
Public
, тя е достъпна за
всички модули и проекти.
4. Оператори за контрол и предаване на управлението
Оператор If
Съкратена форма – общ вид
If
условие
Then
оператор
,
където
условие е
логически израз, който има стойност
True
или
False
, a
If
и
Then
са
служебни думи. Първо се проверява условието и ако е истина, операторът се изпълнява,
а в противен случай – не се изпълнява. Например, ако dr и dot са променливи от тип
Date
, a igod е целочислена променлива, след изпълнение на оператора:
If dr < dot Then
igod = igod +1
променливата igod ще нарасне с 1, само ако dr е помалка от dot. Ако е необходимо да се
изпълнят повече оператори, когато условието е истина, операторът If се записва така:
If
dr < dot
Then
igod = igod +1 ibroj = ibroj +1
<други оператори >
End
If
Пълна форма
If
условие 1
Then
<оператори 1
>
Elseif
условие 2
Then
<оператори 2>
Else
<оператори 3>
End If
В този случай се изпълнява само една от трите групи оператори. Първо се
проверява
условие 1
ако то има стойност истина (
True
), се изпълняват само
операторите от групата <оператори 1>. Ако
условие 1
е неистина (
False
), се проверява
условие 2.
Когато
условие 2
е истина, то се изпълняват операторите <оператори 2>, а
ако е неистина, се изпълняват <оператори 3>.
Ако е необходимо да се проверяват повече от две условия, трябва да се включат
допълнителни редове с
Elself
.
Оператор Select Case
Този оператор осигурява изпълнението на различни групи оператори. Общият вид
на оператора е:
Select Case
тестов_израз
Case
израз 1
12
оператори
Case
израз 2
оператори
Case
израз
З
оператори
Case Else
оператори
End Select
Тестовият израз се сравнява последователно с изразите след ключовата дума
Case
и при съвпадение, операторите след
Case
се изпълняват, ако не се открие
съвпадение, се изпълняват операторите след
Case Else.
Когато последователност от оператори трябва да се изпълнява многократно, се
казва, че те се изпълняват в цикъл. Във VBA
има три оператора за организиране на
цикли.
Оператори за цикли
Оператор For...Next
For
брояч = начало
То
край
[Step
стъпка
]
оператори
Next [
брояч
]
където
брояч е
променлива от тип цяло число, която приема последователно стойности
в интервала от
начало
до
край,
като всяка следваща стойност се получава като се
прибави
стъпка.
В квадратни скоби са параметрите, които могат да се пропускат.
Стъпка
може
да е положително или отрицателно число, а ако се пропусне се приема за 1. При
стъпка
>
0 стойността
начало
винаги е помалка от стойността
край
,
в противен случай
цикълът не се изпълнява.
Описаните действия се повтарят докато
брояч
стане по – голям от
край
и
цикълът се прекратява. Променливата
брояч
може да се използва в тялото на цикъла, но
не трябва да присвоява стойности. При
стъпка
< 0,
начало
е с по – голяма стойност от
край.
При оператора
For
...
Next
броят изпълнения на цикъла е известен предварително.
Например, ако на елементите на масива Nom(1 to 100) е необходимо да се присвоят
поредните 100 четни числа, се използва операторът:
For
i = 1 to 100
Nom
(i) = l*2
Next
i
Операторът
Exit For
се използва за прекратяване на цикъла преди нормалния му
край.
Оператор Do...Loop
Този оператор за цикъл има няколко варианта. Общият вид на оператора е:
Do While
условие
оператори
Loop
или
13
Do
оператори
Loop While
условие
където
условие е
логически израз.
Операторите в тялото на цикъла се изпълняват докато
условие
има стойност
истина (
True
). Цикълът се прекратява когато
условие
стане
неистина (
False
).
При първия вариант на оператора условието за прекратяване на цикъла се
проверява преди изпълнение на тялото.
При втория вариант – в края (тялото се изпълнява поне веднъж).
Вместо служебната дума
While
може да се използва
Until
. В този случай, цикълът
се изпълнява докато
условие
има стойност неистина (
False
) и се прекратява, когато
условие
стане истина (
True
). За принудително прекъсване на изпълнението на цикъла се
използва операторът
Exit Do
.
Оператор For Each ...In
С този оператор се организира цикъл, при който се изброяват елементи от група.
Цикълът се изпълнява толкова пъти, колкото са елементите в групата. Найчесто се
използва за работа с обекти колекции. Общият вид на оператора е:
For Each
елемент
In
група
оператори
Next
[
елемент
]
На
елемент
се присвоява първият елемент от
група
и операторите в цикъла се
изпълняват. След това, на
елемент
се присвоява вторият елемент от
група
и това се
повтаря, докато се изчерпят елементите в
група.
Например, за да се затворят всички
отворени книги в
Excel:
For Each
Book
In
Workbooks
Book.Close
Next
Подпрограми
Програмният код във VBA е обособен в самостоятелни единици, наречени
подпрограми. Съществуват два вида подпрограми функции
(Function)
и процедури
(
Sub
). Всяка подпрограма има заглавен ред, в който се включва:
тип (област на действие),
име на процедурата
списък от параметри.
След това се записват последователно операторите и подпрограмата завършва със
заключителен ред.
Разликата между двата вида подпрограми се състои в това, че при изпълнение на
подпрограма
Function
на нейното име се присвоява резултатна стойност (т.е. функцията
връща стойност), докато при подпрограма
процедурата
(
Sub
) само се изпълняват
включените в нея оператори.
Типът на подпрограмата задава област на действие, която се определя със
служебните думи
Private
(частна) и
Public
(публична). Ако не се посочи типът на
14
подпрограмата, тя автоматично се смята за
Public
. Разликата е в това, че
Private
подпрограмата може да се извиква само в модула, в който е записана, a
Public
подпрограмата може да се извиква и от другите модули в проекта или от други проекти.
Подпрограми – Функции(Function)
Заглавният ред на една функция има следния вид:
[
Public
или
Private
]
Function
име
(параметьр
As
тип, параметър2
As
тип2,...)
As
тип_на_върнатата_стойност
където квадратните скоби означават, че тази част не е задължителна, а
име
е името на
функцията, което е уникално. Краят на функцията се обявява със заключителен ред,
който има вида:
End Function
Функцията не може да се стартира самостоятелно, тя трябва да се „извика" от
друга процедура чрез нейното име. В скобите след името параметрите се заменят с
конкретни стойности, наречени аргументи. Например, функцията Broj прибавя 1 към
първоначалната стойност на параметъра nom:
Function
Broj (nom As
Integer)
As
Integer
Broj = nom + 1
End Function
Ако в друга процедура е включен операторът
Index
= Broj(10), функцията ще се
изпълни, като параметърът nom ще се замести с аргумента 10. В резултат
Index
ще
получи стойност 11.
В разгледания пример функцията връща стойност и участва в израз на оператор
за присвояване. Функциите могат да извършват и много други действия, освен да
определят стойност. Ако при извикване на функцията, аргументите не се поставят в
скоби, тогава резултатната стойност не се запазва.
Подпрограми – Процедури
(
Sub
)
Заглавният ред на една подпрограма има следни вид:
[
Public
или
Private
]
Sub
име
(параметьр1
As
тип1, параметьр2
As
тип2,...)
където
име
е името на подпрограмата, което е уникално. За край на подпрограмата се
използва операторът
End Sub
Подпрограмите могат да се извикват от други процедури с помощта на
оператора:
Call
име
(аргумент1, аргумент2,...)
или
име
аргумент1, аргумент2,...
Както при функциите, аргументите представляват конкретни стойности, които се
присвояват на параметрите. Аргументите трябва да съответстват на параметрите както
по брой и тип, така и по подреждане в списъка. В следващия пример, е показана
подпрограма, в която на променливата sp се присвоява стойност.
Sub
lme(spec
As
string
)
15
Предмет: | Анализ на алгоритми |
Тип: | Курсови работи |
Брой страници: | 51 |
Брой думи: | 7015 |
Брой символи: | 40680 |