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 FunctionFunctie 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.