Informaticasite van het Sondervick College te Veldhoven                 © L.J.M van Haperen (bron : R.J. van der Beek)
 

Hoofdstuk 8: Visual Basic

8.10. Overzicht

  8.10.1. Variabelen

Als je een bepaalde variabele gebruikt moet je die eerst declareren.
Bijvoorbeeld:
Dim x, y as integer
Dim naam as string

Als je de variabelen declareert in de eerste regels van een procedure dan zijn het lokale variabelen. Die houden hun waarden alleeen vast tijdens de procedure. Is de procedure afgelopen dan is de variabele er ook niet meer.
Als je de variabelen declareert onder General, bij Declarations, dan zijn het globale variabelen. Die houden hun waarde vast in het formulier waarin ze gedeclareerd worden.

Typen van variabelen:

byte 8-bit integers: 0 t/m 255
integer 16-bit integers: -32768 t/m 32767
long 32-bit integers (positief en negatief)
single 32-bit floating-point getal, 8 significante cijfers
double 64-bit floating-point getal, 16 significante cijfers
string String van maximaal 63000 karakters
boolean true of false
date datum
variant kan voor van alles gebruikt worden
arraybijvoorbeeld: dim woord(100) as string
of bijv. dim x(3,4) as integer
of dim jaar(2000 to 2010) as integer
constant bijv. const pi as single = 3.14159
Je hebt ook ingebouwde constanten, bijv. vbCrLf. Dit staat voor chr(13) + chr(10)

Een array van controls, bijv. van labels:

Die hoef je niet te declareren.
Plaats eerst zo'n control op het formulier, (bijv. het label met de naam Label) en geef die de index 0 (dan wordt de naam Label(0) )
Dan kun je nieuwe controls maken m.b.v. load
bijv. load Label(1)
Label(1).visible = true
Label(1).left = Label(0).left + 500

Wil je hem laten verdwijnen:
unload label(1)

Declaratie-typen:

dim Wordt gebruikt om variabelen in procedures te declareren
Elke keer als de procedure wordt aangeroepen wordt de variabele gereset (op 0 gezet)
StaticWordt gebruikt om variabelen in procedures te declareren
Elke keer als de procedure wordt aangeroepen wordt de waarde van de variabele hersteld (teruggeroepen)
publicWordt gebruikt om variabelen in een module te declareren
PrivateWordt gebruikt om variabelen in procedures te declareren
De variabele mag alleen in het project gebruikt worden
redimWordt gebruikt om een rij opnieuw te declareren

  8.10.2 Het formulier

In een project kun je met verschillende formulieren werken.
Als je in het menu van VB klikt op Project en dan op Programmanaam Properties, dan kun je via het tabblad General aangeven met welk formulier er gestart wordt (Startup Object).
Standaard is dat Form1.

Als je wilt dat er bepaalde opdrachten worden uitgevoerd zodra het formulier wordt gestart dan moet je die in de procedure Form_Load( ) zetten.

Zet bij een formulier het kenmerk Autoredraw op True (standaard staat het op False).
Als je dit niet doet dan worden teksten en/of tekeningen op het formulier verwijderd als de gebruiker de afmetingen van het formulier wijzigt.

De belangrijkste methoden van een formulier (neem aan dat de naam van het formulier Form1 is) zijn:

Form1.Show vbModal Het formulier wordt geladen en getoond
vbModal kan worden weggelaten. Als het wordt toegevoegd heeft het tot gevolg dat er geen sluitknop op het formulier zit, het kan alleen via het programma worden gesloten
Load Form1laad het formulier in het geheugen, het wordt nog niet getoond
Form1.HideHet formulier wordt onzichtbaar. Het blijft wel in het werkgeheugen staan
Form1.Caption="Test"In de titelbalk van het formulier verschijnt Test
Form1.Left = (Screen.Width - Form1.Width) / 2Het formulier verschijnt (horizontaal) in het midden
Form1.Top = (Screen.Height - Form1.Height) / Het formulier verschijnt (vertikaal) in het midden

  8.10.3 Tekstbox

In een tekstbox kan tekst worden getypt. Standaard staat MultiLine op False, dan kan er maar één regel tekst worden ingevoerd van maximaal 32766 tekens.
Zet je MultiLine op True dan kunnen er meer regels in worden getypt. Je kunt ook een scrollbalk toevoegen via het kenmerk Scrollbars in het eigenschappenvenster.

De belangrijkste methoden van een textbox (neem aan dat de naam van de textbox Text1 is) zijn:

Text1.Text = "test" Het woordje Test verschijnt in de tekstbox
Text1.Text = str(g)Als g een variabele is voor een getal dan wordt dat getal in de tekstbox getoond.
Text1.Text = ""De tekstbox wordt leeg gemaakt
Text1.Text = "regel1" + chr(13) + chr(10) + "regel2"Tekst over twee regels verdeeld in de tekstbox
t = Text1.TextDe string-variabele t krijgt de inhoud van de tekstbox
g = val(Text1.Text)De getal-variabele g krijgt de getalswaarde van de inhoud van de tekstbox
Text1.Enabled = FalseDe gebruiker kan niets aan de tekst in de tekstbox veranderen
Text1.Visible = FalseDe tekstbox wordt onzichtbaar, verdwijnt dus
Text1.Fontname = "Arial"Het lettertype van de tekstbox wordt Arial
Text1.Fontsize = 12De grootte van het lettertype wordt 12 punten
Text1.Fontbold = TrueDe tekens worden vet
Text1.Forecolor = QBColor(0)De kleur van de letters wordt zwart
Text1.Backcolor = QBColor(0)De achtergrondkleur wordt zwart
Text1.SetfocusDe cursor wordt in de tekstbox gezet. Kan niet als Enabled op False staat, en kan ook niet in de Form_load-procedure worden gezet.

De focus kun je ook op een andere manier aan een object geven:
KeyCode = 0
SendKeys "{TAB}"

Deze opdrachten zorgen er voor dat de focus naar de volgende control gaat, net alsof je op de tab-toets hebt gedrukt.

  8.10.4 Label

Een label is een venster met een (vast) opschrift.

Een paar methoden van een label (neem aan dat de naam ervan Label1 is) zijn:

Label1.Caption = "Test"Het opschrift van het label wordt Test
Label1.Borderstyle = 1Er verschijnt een rand om het label
Label1.Alignment = "Center"Het opschrift van het label wordt gecentreerd

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.5 Button (of knop of commandbutton)

Een button is een knop waarop geklikt kan worden om er voor te zorgen dat een opdracht wordt uitgevoerd.
De kleur van zo'n knop is altijd grijs.

Een paar methoden van een button (neem aan dat de naam ervan Command1 is) zijn:

Command1.Caption = "Test"Het opschrift van de knop wordt Test
Command1.Borderstyle = 1Er verschijnt een rand om de knop
Command1.SetfocusDe knop krijgt de focus, als je op enter drukt wordt de bijbehorende opdracht uitgevoerd

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.6 Picturebox

Een picturebox is een venster waarin een plaatje getoond kan worden, waarin getekend kan worden, en waarin tekst getoond kan worden.

Zet bij een picturebox Autoredraw op True (standaard staat het op False).
Als je dit niet doet dan wordt tekst of tekeningen in de picturebox verwijderd als de gebruiker het de afmetingen van de picturebox wijzigt.

Je kunt een plaatje in een picturebox zetten m.b.v. het kenmerk Picture in het eigenschappenvenster.
Je kunt ook een plaatje in een picturebox zetten als het programma al draait.
Als de naam van de picturebox Picture1 is en je wilt het plaatje SUNSET.BMP uit de windows-map er in tonen dan kan dat m.b.v. de opdracht
Picture1.Picture = Loadpicture("C:\WINDOWS\SUNSET.BMP")

Standaard wordt er in het coördinatenstelsel met Twips gewerkt. Een inch bevat 1440 twips.
Je kunt m.b.v. Scalemode die eenheid veranderen.
Picture1.Scalemode = 1 betekent: er wordt met Twips gewerkt, dat is dus de standaardmanier.
Picture1.Scalemode = 0 betekent: je kunt de eenheid zelf bepalen. Dat doe je door bijv. Picture1.Scalewidth = 100 en Picture1.Scaleheight = 100 als opdrachten te geven. Dat betekent dat horizontaal de picturebox in 100 eenheden is verdeeld, en vertikaal ook. Als je dan de opdracht Line (0,0)-(100,100) geeft dan wordt de diagonaal van linksboven naar rechtsonder getekend.

M.b.v. Drawmode kun je bepalen hoe de kleuren, die over elkaar vallen, worden behandeld.
Picture1.Drawmode=13: Standaard, er wordt gewoon getekend met de voorgrondkleur, en waar getekend wordt verdwijnt de achtergrondkleur dus.
Drawmode=15: Voor- en achtergrondkleur worden gemengd
Drawmode=7: Gebruik de kleuren die in voor- of achtergrondkleur voorkomen maar niet in beide
Drawmode=4: Gebruik het tegengestelde van de voorgrondkleur
M.b.v. Drwawstyle kun je bepalen hoe lijnen worden getekend.
Picture1.Drawstyle=0 : normaal
Drawstyle=1 : streepjes
Drawstyle=2 : puntjes
Drawstyle=3 : wisselend streepjes en puntjes

Een paar methoden van een picturebox (neem aan dat de naam ervan Picture1 is) zijn:

Picture1.Print "Test"Op de plaats van de cursor wordt het woord Test afgedrukt
Picture1.ClsDe inhoud van de picturebox wordt gewist
Picture1.CurrentX = 100De x-coördinaat van de cursor wordt 100 (vanaf de linkerrand naar rechts)
Picture1.CurrentY = 200De y-coördinaat van de cursor wordt 200 (vanaf de bovenrand naar beneden)
Picture1.Drawwidth = 2De breedte van de lijnen of punten die getekend worden worden twee keer zo breed als normaal
Picture1.PSet(200,300)Zet een punt op de plaats met coördinaten(200,300)
Picture1.PSet(200,300),QBColor(10)Zet een lichtgroen punt op de plaats met coördinaten(200,300)
Picture1.Line(200,300)-(1000,800)Teken een lijn van (200,300) naar (1000,800)
Picture1.Line(200,300)-(1000,800),QBColor(10)Teken een lichtgroene lijn van (200,300) naar (1000,800)
Picture1.Line(200,300)-(1000,800),QBColor(10),BTeken een lichtgroene rechthoek met (200,300) en (1000,800) als hoekpunten
Picture1.Line(200,300)-(1000,800),QBColor(10),BFTeken een lichtgroene rechthoek met (200,300) en (1000,800) als hoekpunten, die groen is opgevuld
Picture1.FillColor = QBColor(10)De opvulkleur waarmee vanaf nu wordt opgevuld is lichtgroen
Picture1.Circle(1000,800),500Er wordt een cirkel getekend met als middelpunt (1000,800) en als straal 500
Picture1.Circle(1000,800),500,QBColor(10), 1,5 Er wordt een gedeelte van een cirkel getekend, de kleur is lichtgroen
Picture1.Circle(1000,800),500, , , ,4Er wordt een ellips getekend waarvan de vertikale as 500 is en de horizontale as is 4 keer zo klein als de vertikale, en het middelpunt is (1000,800)
Picture1.Circle(1000,800),500, , , ,1/4Er wordt een ellips getekend waarvan de vertikale as 500 is en de horizontale vertikale as is 4 keer zo klein als de horizontale, en het middelpunt is (1000,800)

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.7 Imagebox

Een imagebox is een venster waarin een plaatje getoond kan worden.
Het lijkt veel op een picturebox, maar een imagebox heeft twee voordelen:
Als je bij de eigenschappen het kenmerk Stretch op True zet dan wordt het plaatje automatisch passend gemaakt.
Een imagebox tekent sneller iets op het scherm en gebruikt minder geheugen
Een nadeel is dat er in een imagebox geen tekst m.b.v. Print afgedrukt kan worden, en geen tekeningen m.b.v. Pset, Line en/of Circle gemaakt kunnen worden.

Je kunt een plaatje in een imagebox zetten m.b.v. het kenmerk Picture in het eigenschappenvenster.
Je kunt ook een plaatje in een imagebox zetten als het programma al draait.

Een paar methoden van een imagebox (neem aan dat de naam ervan Image1 is) zijn:

Image1.Stretch = TrueDe afbeelding wordt passend gemaakt in het venster
Image1.Picture = Loadpicture("C:\WINDOWS\SUNSET.BMP")Het plaatje met de naam SUNSET.BMP uit de windows-map wordt in het venster getoond

  8.10.8 Listbox

Een listbox is een venster waarin een lijst wordt getoond waaruit iets gekozen kan worden door er op te klikken.
Een paar methoden van een listbox (neem aan dat de naam ervan List1 is) zijn:

List1.AddItem "Test"Aan de lijst wordt het woord Test (onderaan) toegevoegd
List1.AddItem "Test",3Aan de lijst wordt het woord Test (op de vierde plaats, de eerste plaats heeft nummer 0) toegevoegd
g = List1.ListCountg bevat het aantal elementen in de lijst
t = List1.List(5)t bevat de tekst van het zesde element van de lijst (de eerste heeft nummer 0 !)
List1.RemoveItem(5) Het zesde element van de lijst wordt verwijderd
g = List1.ListIndex g bevat het nummer van de lijst waarop geklikt is (als er op de zesde geklikt is heeft g de waarde 5), als nergens op geklikt is heeft g de waarde -1
List1.Selected(5) = True Het zesde element van de lijst wordt blauw gekleurd, is geselecteerd
List1.ClearDe lijst wordt gewist

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.9 Checkbox

Een checkbox is een vierkant hokje waarin een vinkje verschijnt (of juist weer verdwijnt) als je er op klikt.
Meestal heb je een aantal checkboxen onder elkaar waarin je dingen aan kunt vinken.
Je kunt meer dan één checkbox tegelijk aanvinken (bij optionbuttons of radiobuttons kan er maar één worden aangevinkt).
Een paar methoden van een checkbox (neem aan dat de naam ervan Check1 is) zijn:

Check1.Value = CheckedDe checkbox is aangevinkt
Check1.Value = UncheckedDe checkbox is niet aangevinkt
Check1.Value = GrayedDe checkbox is (tijdelijk) niet beschikbaar
Check1.Caption = "Bijschrift"Het bijschrift bij de checkbox

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.10 Optionbutton

Een optionbutton is een rondje waarin een stip verschijnt (of juist weer verdwijnt) als je er op klikt.
Een optionbutton wordt ook wel een radiobutton genoemd, omdat het net zo werkt als bij een knop op de radio: als je de ene indrukt komt de andere weer omhoog, er kan maar één tegelijk actief zijn.
Meestal heb je een aantal optionbuttons onder- of naast elkaar waarvan je er één kunt selecteren.
Denk goed om het verschil met checkboxen, bij checkboxen kun je meer dan één aanvinken).
Een paar methoden van een optionbutton (neem aan dat de naam ervan Option1 is) zijn:

Option1.Value = TrueDe optionbutton is aangevinkt
Option1.Value = FalseDe optionbutton is niet aangevinkt
Option1.Caption = "Bijschrift"Het bijschrift bij de optionbutton

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

Meestal heb je een array van optionbuttons, een aantal optionbuttons die bij elkaar horen.
Als je er bijv. 10 hebt en je wilt weten welke van de tien is aangeklikt, dan kan dat m.b.v. de volgende code:
gekozen = -1
For i = 0 to 9
if option(i) = true then gekozen = i
next i


Als de variabele gekozen daarna de waarde -1 heeft dan betekent dat dat er op geen enkele optionbutton is geklikt, en anders bevat de variabele gekozen het nummer van de optionbutton waarop is geklikt.

Als je verschillende groepen optionbuttons wilt maken dan moet je ze per groep in een frame of picturebox plaatsen.

  8.10.11 DriveListbox

Een drive-listbox geeft een lijst van diskette-stations (bijv. C-schijf, D-schijf, A-diskette, E-cdrom enz), en er kan een drive worden uitgekozen door er op te klikken.

Je kunt er voor zorgen dat een dir-listbox de mappen toont van het gekozen station in de drive-listbox door de volgende procedure in te voeren:
Sub Drive1_Change( )
Dir1.Path = Drive1.Drive
End Sub

Een paar methoden van een drive-listbox (neem aan dat de naam ervan Drive1 is) zijn:

g = Drive1.ListCountg bevat het aantal elementen in de lijst, dus het aantal stations
t = Drive1.List(1)t bevat de naam van het tweede station (het eerste heeft nummer 0 !)
t = Drive1.Drivet bevat de naam van het geselecteerde station.

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.12 Dir-Listbox

Een dir-listbox geeft een lijst van mappen van een bepaalde schijf (die meestal uitgekozen kan worden m.b.v. een drive-listbox).

Je kunt er voor zorgen dat een file-listbox de bestanden toont van de gekozen map in de dir-listbox door de volgende procedure in te voeren:
Sub Dir1_Change( )
File1.Path = Dir1.Path
End Sub

Een paar methoden van een dir-listbox (neem aan dat de naam ervan Dir1 is) zijn:

g = Dir1.ListCountg bevat het aantal elementen in de lijst, dus het aantal mappen
t = Dir1.List(1)t bevat de naam van de tweede map (de eerste heeft nummer 0 !)
t = Dir1.Patht bevat de naam van de geselecteerde map.

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.13 File-Listbox

Een file-listbox geeft een lijst van bestanden van een bepaalde map (die meestal uitgekozen kan worden m.b.v. een dir-listbox).

Je kunt er voor zorgen dat een file-listbox de bestanden toont van de gekozen map in de dir-listbox door de volgende procedure in te voeren:
Sub Dir1_Change( )
File1.Path = Dir1.Path
End Sub

Je kunt een file-listbox ook gebruiken om er achter te komen welke bestanden er zijn, je kunt de file-listbox dan onzichtbaar maken.

Een paar methoden van een file-listbox (neem aan dat de naam ervan File1 is) zijn:

File1.Pattern = "*.gif"De bestandenlijst bevat alleen de bestanden met extensie GIF
File1.Readonly = trueDe bestandenlijst bevat ook de read-only bestanden
File1.Multiselect = trueEr kan meer dan één bestand uit de lijst worden geselecteerd
g = File1.ListCountg bevat het aantal elementen in de lijst, dus het aantal bestanden in de map
t = File1.List(1)t bevat de naam van het tweede bestand (het eerste heeft nummer 0 !)
t = File1.Filenamet bevat de naam van het geselecteerde bestand.

Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz. Zie daarvoor bij de eigenschappen van een tekstbox

Als je een bestand wilt openen nadat er in de file-listbox op geklikt is dan moet het pad er ook bij.
Dat is File1.Path.
Maar je mag er niet van uitgaan dat de naam + pad van het bestand dan File1.Path + File1.Filename is, want dat hangt er van af of het bestand in de hoofdmap staat of niet.
Daarom moet het zo (de naam + pad wordt in de variabele bn vastgelegd) :
If Right$(File1.Path,1) <> "\" Then
bn = File1.Path + "\" + File1.Filename
Else
bn = File1.Path + File1.Filename
End If

  8.10.14 Scrollbar

Een scrollbar (schuifbalk) lijkt een beetje op een volumeknop van een stero-installatie.
Door het blokje te verschuiven geef je een groter of kleiner getal aan.
Met behulp van min en max in het propertiesvenster kun je bepalen welk getal wordt aangegeven als het blokje helemaal links (of onder) c.q. helemaal rechts (of boven) zit.
.
Een paar methoden van een scrollbar (neem aan dat de naam ervan Hscroll1 is) zijn:

x = Hscroll1.Value x bevat het getal dat de schuifbalk aangeeft
Hscroll1.Max = 255als de schuifbalk helemaal open staat geeft hij het getal 255 aan
Hscroll1.Min = 0als de schuifbalk helemaal dicht staat geeft hij het getal 0 aan
Hscroll1.Largechange = 20als het schuifblokje een beetje verschoven wordt wordt de waarde met 20 vermeerderd of verminderd
Hscroll1.Smallchange = 5als er op de schuifpijl aan het uiteinde van de schuifbalk wordt geklikt wordt de waarde met 5 vermeerderd of verminderd.

Verder heb je ook de eigenschappen Visible, Enabled, Width enz. Zie daarvoor bij de eigenschappen van een tekstbox

  8.10.15 Messagebox en Inputbox

Als je bijv. de opdracht
MsgBox("Tik uw naam in als u verder wilt")
dan verschijnt er een berichtvenster met daarin "Tik uw naam in als u verder wilt" en een OK-knop er onder (en de naam van het lopende programma in de titelbalk), en dan kan de gebruiker niet eerder verder dan wanneer hij of zij op OK heeft geklikt. Daarna verdwijnt het berichtvenster en kan de gebruiker weer verder. Maar zolang er niet op geklikt is kan de gebruiker niets anders, alle vensters zijn "bevroren" totdat er op het berichtvenster is gereageerd.
Hoe groot de messagebox is en waar hij verschijnt bepaalt VisualBasic, daar kun je zelf niets aan veranderen.

Normaal zit er alleen een OK-knop op een messagebox.
Maar door toevoeging van een getal kun je aangeven dat er meer knoppen op moeten zitten.
En je kunt ook aangeven wat er in de titelbalk van het berichtvenster moet staan.
Als je bijv. de opdracht
x = MsgBox("Bent u een man ?", 4, "man of vrouw")
dan verschijnt er een berichtvenster met daarin "Bent u een man ?" en een Yes- en een No-knop er onder, en in de titelbalk staat "man of vrouw".
Met behulp van de waarde van x kun je daarna bepalen of er op de yes- of op de no-knop is geklikt. Bij yes krijgt x de waarde 6 en bij no de waarde 7.

De mogelijkheden voor het middelste getal, dat bepaalt welke knoppen er verschijnen in de messagebox, zijn:

0 alleen OK (de standaard methode)
1 OK en Cancel
2 Abort, Retry en Ignore
3 Yes, No en Cancel
4 Yes en No
5 Retry en Cancel
16 OK en een Stop-teken
48 OK en een informatieteken (een i)

Je kunt het ook nog combineren door dingen bij elkaar op te tellen.
Als je bijvoorbeeld het getal 50 gebruikt (= 48 + 2) krijg je Yes, No en Cancel-knoppen en een informatieteken (een i)

De waarde van de variabele, die aangeeft op welke knop is geklikt (hierboven x genoemd), is als volgt:
1 OK
2 Cancel
3 Abort
4 Retry
5 Ignore
6 Yes
7 No

Het drukken op de escape-toets heeft hetzelfde effect als het klikken op de cancel-knop.

Een Inputbox is net zoiets als een messagebox, met het verschil dat er in een inputbox nog tekst kan worden ingevoerd.
Als je bijv. de opdracht x = InputBox("Geef je naam", "naam") geeft dan verschijnt er een berichtvenster met daarin "Geef je naam" en daaronder een tekstvenster waarin die naam kan worden ingevoerd, en een OK-knop er onder, en in de titelbalk staat "naam".
De variabele x bevat het woord dat is ingevoerd.
Je kunt bij een inputbox ook bepalen waar het berichtvenster verschijnt: als je de opdracht x = InputBox("Geef je naam", "naam","piet", 1000, 2000) geeft dan verschijnt het venster 1000 twips van de bovenrand en 2000 twips van de linkerkant, en in het invoervak staat alvast "piet", en dat kun je dan aanvullen en of veranderen.

  8.10.16 Herhalingen, If-Then

Als je de volgende programmaregels invoert:

For i = 1 to 20
...................................
...................................
next i

dan worden de opdrachten op de stippeltjes 20 keer uitgevoerd, en i doorloopt daarbij achtereenvolgens de waarden 1 tot en met 20

Dat kun je gebruiken als je precies weet hoe vaak het moet gebeuren.

Als je de volgende programmaregels invoert:

For i = 10 to 1 step -1
...................................
...................................
next i

dan worden de opdrachten op de stippeltjes 10 keer uitgevoerd, en i doorloopt daarbij achtereenvolgens de waarden 10 tot en met 1

Als je de volgende programmaregels invoert:

WHILE xxxxxxxxxxxxxx
...................................
...................................
WEND

dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als de voorwaarde op xxxxxxxxxxxxxx geldt.
Er wordt dus pas gestopt als de voorwaarde op xxxxxxxxxxxxxx niet meer geldt.

Als je de volgende programmaregels invoert:

DO UNTIL xxxxxxxxxxxxxx
...................................
...................................
LOOP

dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd tot de voorwaarde op xxxxxxxxxxxxxx niet meer geldt.

Als je de volgende programmaregels invoert:

DO WHILE xxxxxxxxxxxxxx
...................................
...................................
LOOP

dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als de voorwaarde op xxxxxxxxxxxxxx waar is.

Als je de volgende programmaregels invoert:

DO
...................................
...................................
LOOP WHILE xxxxxxxxxxxxxx

dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als de voorwaarde op xxxxxxxxxxxxxx waar is, maar de opdrachten worden in ieder geval één keer uitgevoerd

Als je de volgende programmaregels invoert:

IF xxxxxxxxxxxxxx THEN
...................................
...................................
ELSE
...................................
...................................
ENDIF

dan worden de opdrachten op de eerste stippeltjesregels uitgevoerd als xxxxxxxxxxxxxx waar is en anders worden de opdrachten op de tweede stippeltjesregels uitgevoerd.

Als je de volgende programmaregels invoert:

Select Case cijfer
Case cijfer < 4 Msgbox("Dit was niet zo best")
Case cijfer < 5.5 Msgbox("Net onvoldoende")
Case Else Msgbox("Goed zo")
End Select

dan worden de opdrachten na cijfer < 4 uitgevoerd als cijfer < 4 waar is
de opdrachten na cijfer < 5.5 worden uitgevoerd als cijfer < 5.5 waar is
en anders worden de opdrachten na else uitgevoerd.

  8.10.17 Bestand lezen en /of schrijven

Als je iets uit een bestand, dat op de schijf staat en dat "bestand.txt" heet, wilt inlezen begin je met de opdracht:
Open "bestand.txt" for input as #1
Als je daarna een regel wilt inlezen uit het bestand dan regel je dat m.b.v. de opdracht:
line input #1, r
De variabele r bevat dan die regel.
Als je daarna die opdracht line input #1, r nog eens geeft dan wordt de volgende regel ingelezen.
Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.

Als je alle regels wilt inlezen, en bewaren in het array r(i) dan kan dat m.b.v. de opdrachten:
Open "bestand.txt" for input as #1
i=1
While not eof(1)
      line input#1,r(i)
      i=i+1
wend
close#1

Je mag i.p.v. line input ook gewoon input gebruiken, maar dan wordt niet per regel ingelezen, maar tot de eerstvolgende komma, of puntkomma of enterteken.

Als je iets naar een bestand (bijv. met de naam "test.txt") wilt schrijven dan doe je dat m.b.v. de opdrachten:
Open "test.txt" for output as #1
print #1, regel
...............
close#1

  8.10.18 Kleuren

Je kunt in VB op twee manieren kleuren aangeven.
M.b.v. RGB en QBColor.
Met QBColor heb je de keuze uit maar 16 kleuren, die allemaal met een nummer worden aangegeven.
Voorbeeld:
Text1.Forecolor = QBColor(4) zorgt er voor dat de tekstkleur rood wordt
Label1.Backcolor = QBColor(8) zorgt er voor dat de achtergrondkleur grijs wordt
Picture1.Line(200,300)-(1000,800),QBColor(10) zorgt er voor dat er een lichtgroene lijn van (200,300) naar (1000,800) wordt getekend.

Nummer Kleur (met QBColor)
0 zwart
1 blauw
2 groen
3 cyaan (blauw-groen)
4 rood
5 violet (paars)
6 geel (legergroen)
7 wit (lichtgrijs)
8 grijs (donkergrijs)
9 lichtblauw
10 lichtgroen
11 lichtcyaan
12 lichtrood
13 lichtviolet
14 lichtgeel
15 helder wit

Met RGB heb je de keuze uit meer dan 16 miljoen kleuren, die je m.b.v. drie getallen tussen 0 en 255 aan kunt geven. Het eerste getal geeft de hoeveelheid rood aan, het tweede getal de hoeveel groen en het derde getal de hoeveelheid blauw.
Voorbeeld:
Text1.Forecolor = RGB(255,0,0) zorgt er voor dat de tekstkleur rood wordt
Label1.Backcolor = QBColor(100,100,100) zorgt er voor dat de achtergrondkleur grijs wordt
Picture1.Line(200,300)-(1000,800),RGB(0,255,0) zorgt er voor dat er een groene lijn van (200,300) naar (1000,800) wordt getekend.