Programmeren in VB&VBA

Uit Wikibooks

(Doorverwezen vanaf Programmeren in VB/VBA)
Ga naar: navigatie, zoek
Wikibooks:Infobox/Programmeren in VB&VBA

Wat is VB? VB is de afkorting voor Visual Basic. Dit is een programmeertaal ontworpen door Microsoft om een alternatief te bieden voor VC++. Deze taal laat toe (in tegenstelling tot VC++) om relatief makkelijk Windows Forms te creëren.

Wat is VBA? VBA staat voor Visual Basic for Applications. Dit omdat deze ontworpen is speciaal om makkelijk in MS Word, Access of Excel een programma te schrijven op eenvoudige wijze. De taal die hiervoor gekozen werd was Visual Basic, maar laat toe om makkelijk de inhoud van deze soort files te wijzigen.

    ' het reserveren van geheugenruimte wordt gedaan met het type Dim.
    ' In dit geval reserveren we 4 keer een type string
    ' en 1 keer een type integer.

    Dim lab1 As String
    Dim lab2 As String
    Dim lab3 As String
    Dim lab4 As String
    Dim a As Integer
 
    ' Dit is de Next Button.  We verhogen de teller en maken dan gebruik
    ' van de specifieke functies van VBA voor excel namelijk Range.
    ' Dit specificeert welk veld of van welk veld tot welk veld. Hieronder maken
    ' we de keuze om van de oorspronkelijke rij een offset met a te nemen
    ' en geen tov de kolom.  Deze Value (waarde: string, getal, ..) vullen we in 
    ' in de labels

    Private Sub CommandButton1_Click()
    a = a + 1
    Label1.Caption = Range(lab1).Offset(a, 0).Value
    Label2.Caption = Range(lab2).Offset(a, 0).Value
    Label3.Caption = Range(lab3).Offset(a, 0).Value
    Label4.Caption = Range(lab4).Offset(a, 0).Value
 
    End Sub
 
    ' Dit is de Previous Button.  We verlagen de teller en maken dan gebruik
    ' van de specifieke functies van VBA voor excel namelijk Range.
    ' Dit specificeert welk veld of van welk veld tot welk veld. Hieronder maken
    ' we de keuze om van de oorspronkelijke rij een offset met a te nemen
    ' en geen tov de kolom.  Deze Value (waarde: string, getal, ..) vullen we in 
    ' in de labels

    Private Sub CommandButton2_Click()
    a = a - 1
    Label1.Caption = Range(lab1).Offset(a, 0).Value
    Label2.Caption = Range(lab2).Offset(a, 0).Value
    Label3.Caption = Range(lab3).Offset(a, 0).Value
    Label4.Caption = Range(lab4).Offset(a, 0).Value
 
    End Sub
 
 
    ' een lege toets

    Private Sub CommandButton3_Click()
    End Sub
 
 
    ' Deze functie wordt aangeroepen wanneer de form opstart, men kan ook nog
    ' andere kiezen nl: wanneer er op geklikt word,...
    ' we stellen de teller in op 0 en geven de velden een beginwaarde.

    Private Sub UserForm_Activate()
    a = 0
    lab1 = "A1"
    lab2 = "B1"
    lab3 = "C1"
    lab4 = "D1"
    Label1.Caption = Range(lab1).Value
    Label2.Caption = Range(lab2).Value
    Label3.Caption = Range(lab3).Value
    Label4.Caption = Range(lab4).Value
    End Sub

Inhoud

[bewerken] Woordenlijst

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.

[bewerken] Algemene simpele opdrachten

  • Sub hier titel() : titel van de macro (komt helemaal bovenaan)
  • Selection.TypeText Text:="(de tekst)" : op de plaats van de cursor komt de tekst
  • ActiveDocument.Paragraphs.Count : regels tellen
  • ActiveDocument.Save : opslaan
  • ActiveDocument.PrintOut Copies:=(getal) : een aantal keer afdrukken
  • ActiveDocument.Printout Range:=wdPrintCurrentPage : uitsluitend huidige pagina printen (range betekent afdrukbereik)
  • Documents.Save : alle geopende documenten worden opgeslagen
  • Documents(1).Save : eerste document in verzameling wordt opgeslagen (1 te vervangen door ieder gewenst getal, zo slaat 2 het tweede document op)
  • Documents.Add : nieuw document
  • Selection.Copy : selectie wordt in het Microsoft klembord opgeslagen
  • ActieDocument.Range(0, 20).Select : eerste 20 tekens van open document worden geselecteerd (0, 20 te vervangen door ieder gewenst getal)
  • Workbooks.Add : nieuwe werkmap (Excel)
  • Sheets.PrintOut : alle bladen in werkmap worden afgedrukt (Excel)
  • ActiveCell.Value : inhoud actieve cel wordt uitgelezen (Excel)
  • Range("A1:A5").Formula = "woord" : cellen A1 tot en met A5 worden met een bepaald woord gevuld (Excel, A1:A5 te vervangen door ieder gewenste cel)
  • Selection.TypeText : tekst in nieuw document plaatsen
  • formuliernaam.Show : formulier wordt getoond
  • Selection.TypeParagraph : nieuwe alinea wordt begonnen
  • End Sub : einde van de macro

[bewerken] VBA constanten

  • vbCrLf : regelterugloop en regelinvoer
  • vbCr : regelterugloop
  • vbLf : regelinvoer
  • vbTab : Tab-teken

[bewerken] VBA functies

  • LCase(tekenreeks) : tekst omzetten naar kleine letters
  • UCase(tekenreeks) : tekst omzetten naar hoofdletters
  • Left(tekenreeks, x) : de eerste x tekens aan de linkerkant van de tekenreeks
  • Right(tekenreeks, x) : de eerste x tekens aan de rechterkant van de tekenreeks
  • Mid(tekenreeks, x, y) : een tekenreeks beginnend bij karakter x ter lengte van y uit de grotere tekenreeks
  • variabele = Inputbox(vraag, titel, ...) : invoer vragen aan de gebruiker
  • MsgBox(melding, knoppen, titel, ...) : een melding op het scherm tonen
  • Len() : lengte van tekenreeks achterhalen

[bewerken] Operatoren

  • + : optellen
  • - : aftrekken
  • * : vermenigvuldigen
  • / : delen
  • ^ : machtsverheffen
  • = : gelijk aan
  • <> : ongelijk aan
  • < : kleiner dan
  • > : groter dan
  • <= : kleiner dan of gelijk aan
  • => : groter dan of gelijk aan

[bewerken] Variabelentypen

  • Integer : gehele getallen
  • Long : gehele getallen
  • Single : getallen met decimalen
  • Double : getallen met decimalen
  • 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 9 november 2009

Noot: een veelgemaakte fout is dat een variabele als een verkeerd type wordt gedeclareerd (bijvoorbeeld Integer als Double nodig is).

[bewerken] 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.

[bewerken] Lussen

  • For ... Next : herhaalt een groep instructies een vast aantal keren
  • For Each ... Next : herhaalt een groep instructies voor elk element in een verzameling
  • Do ... Loop : herhaalt en groep instructies tot een voorwaarde waar is
  • Do While ... Loop : herhaalt instructies zolang voorwaarde aan begin waar is
  • Do ... Loop While : herhaalt instructies zolang voorwaarde aan einde waar is
  • Do Until ... Loop : voert instructies uit tot voorwaarde aan begin waar is
  • Do ... Loop Until : voert instructies uit tot voorwaarde aan einde waar is
  • For ... Next ... Step : herhaal een vast aantal malen
  • While ... Wend : herhaal zolang

[bewerken] Methoden

  • .Show : formulier wordt op scherm vertoond
  • .Hide : formulier wordt onzichtbaar
  • AddItem(...) : voegt ... toe, waardoor deze tekst onder het vorige komt te staan
  • Clear : maakt leeg

[bewerken] Instructies

  • Dim : variabelen declareren (liefst bovenaan in de macro)
  • ReDim : éénmaal gedimensioneerd array wijzigen
  • ReDim Preserve : bestaand array herdimensioneren zonder inhoud te verliezen

[bewerken] Diversen

  • Step : tellervariabele in grotere stappen laten ophogen
  • CInt(...) : zet de inhoud van ... om in integer
  • Str(...) : zet ... om in String
Heckert GNU.png Deze pagina is vrijgegeven onder de GNU Free Documentation License (GFDL) en nog niet onder CC-BY-SA. Klik hier voor meer informatie.

Wilt u deze tekst gebruiken onder de Creative Commons CC-BY-SA licentie?
Klik dan hier om te kijken van welke gebruikers u nog toestemming nodig heeft.

Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.
Persoonlijke instellingen