'diese Variablen müssen als Array jedoch ohne Dimension deklariert werden
Dim art()
Dim zahl()
Private Sub cb1_Click()
lblErgebnis.Caption = lblErgebnis.Caption & "1"
End Sub
Private Sub cb2_Click()
lblErgebnis.Caption = lblErgebnis.Caption & "2"
End Sub
Private Sub cb3_Click()
lblErgebnis.Caption = lblErgebnis.Caption & "3"
End Sub
Private Sub cb4_Click()
lblErgebnis.Caption = lblErgebnis.Caption & "4"
End Sub
Private Sub cb5_Click()
lblErgebnis.Caption = lblErgebnis.Caption & "5"
End Sub
Private Sub cb6_Click()
lblErgebnis.Caption = lblErgebnis.Caption & "6"
End Sub
Private Sub cbClear_Click()
lblErgebnis.Caption = ""
'die Arrays zurücksetzen
ReDim art(0)
ReDim zahl(0)
End Sub
Private Sub cbGleich_Click()
'neu dimensionieren und letzte Zahl zuweisen
ReDim Preserve zahl(UBound(zahl) + 1)
zahl(UBound(zahl)) = lblErgebnis.Caption
lblErgebnis.Caption = ""
'ersten Teil der Formel erstellen
formel = zahl(1) & " "
'erste Zahl zur Berechnung an Variable übergeben
ergebnis = zahl(1)
'in Schleife alle weiteren Zahle und Rechenarten durchlaufen und den Variablen
ergebnis und formel entsprechend übergeben
For a% = 2 To UBound(zahl)
If art(a% - 1) = "+" Then
ergebnis = ergebnis + CDbl(zahl(a%))
ElseIf art(a% - 1) = "-" Then
ergebnis = ergebnis - CDbl(zahl(a%))
End If
formel = formel & art(a% - 1) & " " & zahl(a%) & " "
Next a%
'an die Formel das "=" und das tatsächliche Ergebnis anhängen und in Liste eintragen
formel = formel & " = " & ergebnis
LstFormel.AddItem formel
'Ergebnis in Textfeld eintragen
lblErgebnis.Caption = ergebnis
'Arrays auf die Dimension 0 setzen
End Sub
Private Sub cbMinus_Click()
ReDim Preserve art(UBound(art) + 1)
art(UBound(art)) = "-"
ReDim Preserve zahl(UBound(zahl) + 1)
zahl(UBound(zahl)) = lblErgebnis.Caption
lblErgebnis.Caption = ""
End Sub
Private Sub cbPlus_Click()
ReDim Preserve art(UBound(art) + 1)
art(UBound(art)) = "+"
ReDim Preserve zahl(UBound(zahl) + 1)
zahl(UBound(zahl)) = lblErgebnis.Caption
lblErgebnis.Caption = ""
End Sub
Private Sub UserForm_Activate()
ReDim art(0)
ReDim zahl(0)
End Sub