Leren programmeren: planeet


Om het gewicht van een persoon op een planeet te berekenen, moeten we opvragen over welke planeet het gaat. We kunnen dat via een InputBox doen, maar het is efficiënter om dat te doen met een reeks optievakken. Dat zou er dan zo kunnen uitzien:

Private Sub cmdGo_Click()
Dim massa As Single
Dim gewicht As Single
If Not IsNumeric(txtMassa.Text) Then Exit Sub 'er is geen getal ingegeven
massa = CSng(txtMassa.Text)
If optMaan.Value = True Then gewicht = massa * 0.166
If optJupiter.Value = True Then gewicht = massa * 2.36
If optMars.Value = True Then gewicht = massa * 0.39
If optVenus.Value = True Then gewicht = massa * 0.9
If optNeptunus.Value = True Then gewicht = massa * 1.12
MsgBox ("Je gewicht bedraagt " & gewicht & " kg")
End Sub

Een andere manier is om gebruik te maken van een keuzelijst waarin de planeten opgesomd worden. We bevolken eerst de keuzelijst.

Private Sub UserForm_Initialize()
lstPlaneten.AddItem ("Maan")
lstPlaneten.AddItem ("Jupiter")
lstPlaneten.AddItem ("Mars")
lstPlaneten.AddItem ("Venus")
lstPlaneten.AddItem ("Neptunus")
End Sub

En bij de druk op de knop gaan we na welke planeet geselecteerd is. Inderdaad, dit is wat ingewikkelder: je moet er op letten hoe het actieve item kan gevonden worden.

Private Sub cmdGo_Click()
Dim massa As Single
Dim gewicht As Single
If Not IsNumeric(txtMassa.Text) Then Exit Sub 'er is geen getal ingegeven
massa = CSng(txtMassa.Text)
Select Case lstPlaneten.List(lstPlaneten.ListIndex)
  Case "Maan"
   gewicht = massa * 0.166
  Case "Jupiter"
   gewicht = massa * 2.36
  Case "Mars"
    gewicht = massa * 0.39
  Case "Venus"
    gewicht = massa * 0.9
  Case "Neptunus"
    gewicht = massa * 1.12
End Select
MsgBox ("Je gewicht bedraagt " & gewicht & " kg")
End Sub

Tenslotte nog dit: je zou ook een reeks van functies kunnen maken. Bijvoorbeeld:

Function maan(massa As Single) As Single
maan = massa * 0.166
End Function
Function jupiter(massa As Single) As Single
jupiter = massa * 2.36
End Function
Function mars(massa As Single) As Single
mars = massa * 0.39
End Function
Function venus(massa As Single) As Single
venus = massa * 0.9
End Function
Function neptunus(massa As Single) As Single
neptunus = massa * 1.12
End Function

Zo'n functie kan je rechtstreeks in Excel gebruiken, of elders waar de gebruiker geen grafische interface heeft om de planeet te selecteren.


[VB Web] - [Leren programmeren] - [hlrnet] - [copyright]