Prosedurlar və funksİyalar
Vba da prosedurlar iki cür olur:
-
Əhvalatların emalı proseduru,
-
Ümumi prosedurlar.
Əhvalatların emalı proseduru idarəetmə düymələri ilə bağlıdır. Məsələn, CommandButton1_Click presedurunda CommandButton1- komanda düyməsini Click, yəni vurduqda kod aktivləşəcək. Əhvalat komandanın adı ilə “_” ilə əlaqələndirilir.
Ümumi prosedurlar VBA da istənilən tip modullarada yerləşə bilər, onları bir başa və ya digər prosedurdan müracət etməklə işə salmaq olur. Prosedurlar da dəyişənlər kimi onlara müracətdən əvvəl elan edilməlidirlər.
Prosedurlar iki tipə bölünürlər altkomandalar və funksiyalar. Onlar proqram kodunun bir fraqmenti hesab olunurlar, uyğun olaraq Sub və End Sub, Function və End Function ifadələri ilə müəyyən olunurlar. Məsələn, prosedur- altkomanda
Sub (<1-ci arqument>, <2-ci arqument >, …)
<1-ci operator>
<2-ci operator >
End Sub
Burada arqument siyahısı buraxıla və yalnız boş mötərzə qoyula bilər.
Sub Init (arr() As Integer)
Dim i As Integer, str As String
For i * LBound(arr) To UBound(arr)
str = "Kitabların sayını daxil edin № " & I
arr(i) = InputBox(str) 'Daxil etmək üçün dialoq lövhəsidir
Next I
End Sub
Aşağıda funksiyaya aid nümunə verilmişdir
Function SummaVar (ParamArray varArg() As Variant) As Integer
Dim intSum As Integer, numb As Variant
For Each numb In varArg 'massivin bütün elementlərinə müracət
intSum = intSum + numb 'buraxılarsa 0 qəbul olunur.
Next numb
SummaVar = intSum ' qaytarılan nəticə
End Function
Prosedura müracət üçün aşağıdakı sintaksisdən istifadə edilir.
və ya
Call
Məsəln,
seperator angle, n, m
Funksiyaya müracət üçün aşağıdakı sintaksisdən istifadə edilir.
=().
Aşağıdakı misalda prosedur və funksiyanın birlikdə istifadəsinin bir fraqmenti verilmişdir
Dim a, b, c, d, k, m, h As Integer
Sub summ()
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
k = a + b
End Sub
Sub umn()
c = Val(TextBox3.Text)
d = Val(TextBox4.Text)
m = c * d
End Sub
Function prim() As Integer
Call summ
Call umn
prim = k – m
End Function
Private Sub CommandButton1_Click()
Call summ
Call umn
h = prim (a, b)
Label8.Caption = “Cəm: a + b =” & k
Label9.Caption = “Hasil: c * d =” & m
Label10.Caption = "Funksiyanın qiyməti: a+b-c*d= " & h
End Sub
-
Dostları ilə paylaş: |