VBA
Een procedure maken
Zoeken…
Inleiding tot procedures
Een Sub
is een procedure die een specifieke taak uitvoert maar geen specifieke waarde retourneert.
Sub ProcedureName ([argument_list])
[statements]
End Sub
Als er geen toegangsmodificator is opgegeven, is een procedure standaard Public
.
Een Function
is een procedure die gegevens krijgt en een waarde retourneert, idealiter zonder globale bijwerkingen of module-scope bijwerkingen.
Function ProcedureName ([argument_list]) [As ReturnType]
[statements]
End Function
Een Property
is een procedure die modulegegevens inkapselt . Een eigenschap kan hebben 3 accessors: Get
een waarde of referentie terugkeren, Let
op een waarde toewijst en / of Set
een referentieobject toe.
Property Get|Let|Set PropertyName([argument_list]) [As ReturnType]
[statements]
End Property
Eigenschappen worden meestal gebruikt in klassemodules (hoewel ze ook zijn toegestaan in standaardmodules), waardoor de accessor wordt blootgesteld aan gegevens die anders niet toegankelijk zijn voor de oproepcode. Een eigenschap die alleen een Get
accessor blootstelt, is "alleen-lezen"; een eigenschap die alleen een Let
en / of Set
accessor zou blootleggen, is "alleen-schrijven". Alleen-schrijven eigenschappen worden niet als een goede programmeerpraktijk beschouwd - als de clientcode een waarde kan schrijven , moet deze deze kunnen lezen . Overweeg een Sub
procedure te implementeren in plaats van een eigenschap alleen-schrijven te maken.
Retourneren van een waarde
Een Function
of Property Get
kan (en moet!) Een waarde retourneren aan de beller. Dit wordt gedaan door de identifier van de procedure toe te wijzen:
Property Get Foo() As Integer
Foo = 42
End Property
Functie met voorbeelden
Zoals hierboven vermeld, zijn functies kleinere procedures die kleine stukjes code bevatten die zich binnen een procedure kunnen herhalen.
Functies worden gebruikt om redundantie in code te verminderen.
Net als bij een procedure kan een functie worden gedeclareerd met of zonder een lijst met argumenten.
Functie wordt gedeclareerd als een retourtype, omdat alle functies een waarde retourneren. De naam en de retourvariabele van een functie zijn hetzelfde.
Functie met parameter:
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
Functie zonder parameter:
Function greet() as String greet= "Hello Coder!" end Function
De functie kan op verschillende manieren in een functie worden opgeroepen. Omdat een functie gedeclareerd met een retourtype in principe een variabele is. het wordt gebruikt vergelijkbaar met een variabele.
Functionele oproepen:
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
Verder kan de functie ook worden gebruikt als voorwaarden voor if en andere voorwaardelijke verklaringen.
for i = 1 to 10
if check_even(i) then
msgbox i & " is Even"
else
msgbox i & " is Odd"
end if
next i
Verder kunnen Functies modificaties hebben zoals By ref en By val voor hun argumenten.