Betingelser
Beskrivelse
Betingelser
Nu har vi lært at stille spørgsmål til brugeren - så skal vi også kunne reagere på det. Til det brug har vi flere muligheder:
If betingelse Then Kommandoer Else Kommandoer End if If betingelse Then Kommandoer Elseif ny betingelse Then Kommandoer Else Kommandoer End if Select Case Variabel Case værdi Kommandoer Case værdi Kommandoer Case værdi Kommandoer Case værdi Kommandoer Case Else Kommandoer End Select Bemærk, at det er god kodestil, at lave indryk, så man kan se hvordan If og End if hænger sammen.
Man kan også holde if sætningerne på én linje hvis man kun har én kommendo i linjen - det gør koden lidt mere kompakt og måske letter at læse...
If betingelse Then Kommando If betingelse Then Kommando Else Kommando Og der findes også en funktion, der minder om Excel's hvis funktion
Iif(Betingelse, sand værdi, falsk værdi) stBesked = IIf(stLand = "Danmark", "Hej med dig", "Hello") Et eksempel på anvendelse af If sammen med f.eks. MsgBox kunne se sådan her ud:

Bemærk, at der igen dukkede én af disse indbyggede konstanter op (vbYes). Hvis du gerne vil se alle de konstanter, der er defineret i VBA skal du trykke på F1 for at komme ind i hjælpefunktionen. Hvis du vælger Contents fanen hedder den første kategori Constants og her kan du finde alle de konstanter der er defineret i VBA.
Og et eksempel på Select Case konstruktionen kunne se sådan her ud:

Øvelse
Lav et regneark, der hedder "Betingelser.xlsm". Skriv følgende makroer i regnearket:
- Skriv en makro, der skaber denne dialog

Hvis brugeren svarer nej
Ellers:

Hvis tallet er mellem 1 og 5
Og mellem 5 og 10
Mellem 10 og 20
Og større end 20
- Sørg igen for at makroen kan køre fra en knap i arket
Send regnearket til mig.
Løsning
Hent mit løsningsforslag her.
Og min kode ser sådan her ud:
Sub Betingelser() svar = MsgBox("Skal vi gå i gang?", vbYesNo, "Velkommen") If svar = vbNo Then MsgBox "ØV" Else MsgBox "Meget fint" antal = InputBox("Hvor mange gange skal vi køre?", "Så kører vi", "10") Select Case antal Case 1 To 5 MsgBox "Det var ikke mange" Case 6 To 10 MsgBox "Tja... det er sikkert fint" Case 11 To 20 MsgBox "Det var mange - det er jeg ikke sikker på jeg kan klare" Case Else MsgBox "Det går ikke!" End Select End If End Sub Bemærk, hvordan koden er sat op. Det er meget vigtigt, at man laver denne indrykning da koden ellers bliver totalt ulæselig.
Brug for hjælp til VBA, VSTO eller SQL?
Scient Data tilbyder professionel IT-konsulentbistand
Kontakt Scient Data →