VBA
Tworzenie procedury
Szukaj…
Wprowadzenie do procedur
Sub
jest procedurą, która wykonuje określone zadanie, ale nie zwraca określonej wartości.
Sub ProcedureName ([argument_list])
[statements]
End Sub
Jeśli nie określono modyfikatora dostępu, procedura jest domyślnie Public
.
Function
to procedura, która otrzymuje dane i zwraca wartość, najlepiej bez efektów ubocznych globalnych lub modułowych.
Function ProcedureName ([argument_list]) [As ReturnType]
[statements]
End Function
Property
to procedura enkapsulująca dane modułu. Właściwość może mieć do 3 akcesoriów: Get
aby zwrócić wartość lub odwołanie do obiektu, Let
aby przypisać wartość i / lub Set
aby przypisać odwołanie do obiektu.
Property Get|Let|Set PropertyName([argument_list]) [As ReturnType]
[statements]
End Property
Właściwości są zwykle używane w modułach klasowych (chociaż są one dozwolone również w modułach standardowych), narażając dostęp do danych, które w innym przypadku byłyby niedostępne dla kodu wywołującego. Właściwość, która ujawnia tylko akcesor Get
jest „tylko do odczytu”; właściwość, która ujawniałaby tylko akcesorium Let
i / lub Set
jest „tylko do zapisu”. Właściwości tylko do zapisu nie są uważane za dobrą praktykę programistyczną - jeśli kod klienta może zapisać wartość, powinien móc ją ponownie odczytać . Rozważ zastosowanie procedury Sub
zamiast tworzenia właściwości tylko do zapisu.
Zwracanie wartości
Procedura Property Get
Function
lub Property Get
może (i powinna!) Zwrócić wartość do jej obiektu wywołującego. Odbywa się to poprzez przypisanie identyfikatora procedury:
Property Get Foo() As Integer
Foo = 42
End Property
Funkcja z przykładami
Jak wspomniano powyżej Funkcje to mniejsze procedury, które zawierają małe fragmenty kodu, które mogą się powtarzać w ramach Procedury.
Funkcje służą do zmniejszenia nadmiarowości w kodzie.
Podobnie jak w Procedurze, funkcję można zadeklarować z listą argumentów lub bez niej.
Funkcja jest deklarowana jako typ zwracany, ponieważ wszystkie funkcje zwracają wartość. Nazwa i zmienna zwrotna funkcji są takie same.
Funkcja z parametrem:
Function check_even(i as integer) as boolean if (i mod 2) = 0 then check_even = True else check_even=False end if end Function
Funkcja bez parametru:
Function greet() as String greet= "Hello Coder!" end Function
Funkcję można wywoływać na różne sposoby wewnątrz funkcji. Ponieważ funkcja zadeklarowana za pomocą typu zwracanego jest w zasadzie zmienną. jest używany podobnie jak zmienna.
Połączenia funkcjonalne:
call greet() 'Similar to a Procedural call just allows the Procedure to use the
'variable greet
string_1=greet() 'The Return value of the function is used for variable
'assignment
Ponadto funkcja może być również używana jako warunek dla instrukcji if i innych instrukcji warunkowych.
for i = 1 to 10
if check_even(i) then
msgbox i & " is Even"
else
msgbox i & " is Odd"
end if
next i
Dalsze funkcje mogą mieć modyfikatory, takie jak By ref i By val dla swoich argumentów.