Programmeren in VB&VBA: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
BRUTE (overleg | bijdragen)
k Wijzigingen door 78.20.87.129 hersteld tot de versie na de laatste wijziging door BRUTE
Regel 75:
 
Het kan handig zijn allerlei codes van Visual Basic te verzamelen. Deze lijst kan namelijk een belangrijke steun zijn bij het programmeren. Hieronder een woordenlijst met codes in Visual Basic. U wordt vriendelijk uitgenodigd codes toe te voegen.
 
 
 
 
 
===Algemene simpele opdrachten===
Regel 117 ⟶ 121:
 
===Operatoren===
====Algemene operatoren====
 
* '''+''' : optellen
* '''-''' : aftrekken
* '''*''' : vermenigvuldigen
* '''/''' : delen
* '''^''' : machtsverheffen
* '''=''' : gelijk aan
* '''<>''' : ongelijk aan
Regel 130 ⟶ 129:
* '''=>''' : groter dan of gelijk aan
 
===Variabelentypen=Getal operatoren====
* '''+''' : optellen
 
* '''Integer-''' : gehele getallenaftrekken
* '''Long*''' : gehele getallenvermenigvuldigen
* '''Single/''' : getallen met decimalendelen
* '''Double^''' : getallen met decimalenmachtsverheffen
* '''^0.5''' : makkelijke manier om vierkantwortels te trekken
* '''Currency''' : valuta
* '''String''' : tekenreeksen (tekst)
* '''Byte''' : gehele getallen
* '''Boolean''' : logische waarden (twee mogelijkheden, ja (true) of nee (false)
* '''Date''' : data en tijden
* '''Object''' : instanties van klassen en OLE objecten
* '''Variant''' : alle bovenstaande zijn mogelijk
* '''Date''' : datum, bijvoorbeeld {{LOCALDAY}} {{LOCALMONTHNAME}} {{LOCALYEAR}}
 
====Logische operatoren====
'''Noot:''' een veelgemaakte fout is dat een variabele als een verkeerd type wordt gedeclareerd (bijvoorbeeld ''Integer'' als ''Double'' nodig is).
 
===Beslissingsinstructies en logische operatoren===
 
* '''If''' : als vergelijking van If waar is...
* '''Then''' : ...worden de instructies achter of na Then uitgevoerd
* '''Else''' : deze instructies worden gebruikt als vergelijkingen van If niet waar zijn
* '''Not''' : uitkomst vergelijking omdraaien
* '''And''' : twee of meer vergelijkingen in 1 If instructie beoordelen
* '''Or''' : beoordelen of 1 van de vergelijkingen waar is
* '''Case Else''' : bij waarden die niet worden vergeleken worden deze instructies uitgevoerd
* '''Xor''' : is true wanneer 1 van de uitdrukkingen true is, maar niet beide, dan is het false.
 
====Tekst operatoren====
* '''&''' of '''+''' : om twee strings te te verbinden (! er wordt geen spatie tussen gezet !)
 
 
===Gegevenstypes===
Elke variabele kan je definiëren aan de hand van Dim 'naamveriabele' as 'gegevenstype' (je kan ook Private ... as ... gebruiken: dit heeft dezelfde betekenis als dim: je kan de variabele enkel in deze module gebruiken of je kan Public ... as ... gebruiken: je kan de variabele in elke module gebruiken); als je ingewikkelde programma's schrijft is het handig om bovenaan je code (voor Sub ()) option explicit toe te voegen, dit betekent dat je alle variabelen moet definiëren en is handig om geen typfouten te maken.
Nadat je je variabele dan hebt gedefiniëerd kan je deze gelijkstellen aan een waarde.
Hier een tabel met soorten gegevenstypes (deze tabel is niet zeker niet compleet, maar biedt een handige basis).
{| class="wikitable sortable"
|-
! Gegevenstype!! Verklaring
|-
| string|| bevat tekst, altijd gelijkstellen aan iets tussen dubbele aanhalingstekens
|-
| boolean|| bevat een juist of fout-waarde, handig voor logische variabelen, altijd gelijkstellen aan True of False
|-
| integer|| bevat een getal tussen 32768 en zijn negatieve equivalent, enkel gehele getallen (dus geen komma's), gebruikt 2 bytes geheugen
|-
| long || bevat een getal tussen 2147483648 en zijn negatieve equivalent, enkel gehele getallen (dus geen komma's), gebruikt 4 bytes geheugen
|-
| byte || bevat een getal tussen 0 en 255, enkel gehele getallen (dus geen komma's), gebruikt logischerwijs 1 byte geheugen
|-
| single|| bevat een kommagetal, gebruikt 4 bytes geheugen en kan dus evengrote getallen aan als een long
|-
| double|| bevat een kommagetal, gebruikt 8 bytes geheugen en kan dus ongeveer dubbel zoveel cijfers verwerken als een single
|-
| currency || bevat een kommagetal, is SUPERnauwkeurig maar verbruikt SUPERveel geheugen
|-
| variant|| bevat ofwel een tekst, ofwel een getal, of meer specifieke andere toestanden (die niet echt voor beginners zijn weggelegd)
|-
| vbMsgBoxResult|| bevat de uitkomst van de knoppen van een msgbox, vb. als er op ok is gedrukt kan je schrijven If vbmsgboxresult = vbok then ...)
|-
|Object||bijna alle objecten (zoals info over je computer, geluiden, ...) worden hierin opgeslagen, ook eerder niet voor beginners
|-
|date|| hierin kan je info over data opslaan, je kan er ook tijden in opslaan
|}
 
Een veelgemaakte fout is dat er een verkeerd gegevenstype wordt gebruikt voor een functie (vb. je stelt een stringvariabele gelijk aan een functie die een getal als uitkomst geeft), voor het juiste gegevenstype te achterhalen kan je in office-applicaties de functie selecteren en dan op F1 drukken voor het help-menu te openen. In dit help-menu staat zo goed als altijd vermeld wat het verwachte gegevenstype is.
 
===Beslissingsinstructies en logische operatoren===
 
====If ... Then====
 
De If ... Then instructie bestaat standaard uit drie delen:
het If- deel: hierachter volgt een stelling (zoals variabele < 1, zie onderdeel operatoren voor meer soorten stellingen),
het Then-deel: hierachter komt altijd een nieuwe regel met wat er moet gebeuren als de stelling waar is,
het End If-deel: het End If-deel is nodig om duidelijk te maken dat de If ... Then instructie is afgelopen.
 
=====Optionele delen van de If ... Then instructie=====
 
Optionele delen zijn delen die niet altijd nodig zijn maar wel handig kunnen zijn om te gebruiken.
Het Else-deel: direct hierachter komt wat er moet gebeuren als de stelling niet waar is, als je deze instructie niet hebt wordt er niks gedaan als de stelling niet waar is.
Het ElseIf-deel: direct hierachter volgt een nieuwe stelling, je koppelt dus eigenlijk twee dingen aan elkaar Else + If en na deze nieuwe voorwaarde komt een nieuwe lijn waarop dan weer de code wordt getypt wat er moet gebeuren als die stelling waar is.
 
voorbeeld If...Then instructie
 
Sub test()
<br />
Dim variabele as string
<br />
variabele = inputbox ("geef je tekst in")
<br />
If variabele = "Hallo" Or "hallo" then
<br />
msgbox "ook hallo"
<br />
ElseIf variabele = "Gegroet" then
<br />
msgbox "wie zegt dat nu nog?"
<br />
Else
<br />
msgbox "geen groet?"
<br />
end If
<br />
End Sub
 
====IIf====
 
De IIf instructie heeft dezelfde betekenis als If ... Then ... Else maar dan op één regel.
Je geeft het als volgt in: IIf(stelling, waar deel, vals deel)
 
voorbeeld IIf instructie
 
Sub test ()
<br />
Dim variabele as vbmsgboxresult
<br />
variabele = msgbox ("klik op een knop", vbokcancel, "knop")
<br />
Iif (variabele = vbOk, msgbox "je klikte op OK", msgbox "je klikte op cancel")
<br />
End Sub
====Select Case ...====
 
De select Case ... instructie bestaat standaard uit minstens 3 delen:
het Select Case-deel: hierachter volgt de naam van de variabele waar je stellingen aan gaat koppelen,
het Case-deel: hierachter schrijf je een waarde (vb. Case 4 wilt zeggen: in het geval dat de variabele 4 is) en dan op een nieuwe regel de code die dan moet gebeuren, je kan zoveel Case-delen in 1 Select Case ... instructie zetten als je wilt,
het End Select-deel: zelfde functie als End If-deel bij de If ... then instructie.
 
=====Optionele delen van de Select Case ... instructie=====
 
het Case Else-deel: dit schrijf je als laatste case en het is letterlijk in het geval dat het iets anders is dan al vermeld, zelfde functie als het Else-deel bij de If ... Then instructie
 
voorbeeld van de Select Case ... instructie
 
Sub test()
<br />
dim variabele as string
<br />
variabele = inputbox ("geef een getal tussen 1 en 4 in")
<br />
select case variabele
<br />
case 1
<br />
msgbox "één"
<br />
Case 2
<br />
msgbox "twee"
<br />
case 3
<br />
msgbox "drie"
<br />
case 4
<br />
msgbox "vier"
<br />
case else
<br />
msgbox "foutieve invoer: het getal lag niet tussen de 1 en de 4!", vbcritical + vbokonly
<br />
End
<br />
End Select
<br />
End Sub
 
===Lussen===
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.