Visual Basic 2010 Excel VBA Taschenrechner programmieren SelMcKenzie Selzer-McKenzie
Author D.Selzer-McKenzie
Heute zeige ich Ihnen, wie Sie ganz einfach einen voll funktionierenden Taschenrechner in Visual Basic oder auch in Excel programmieren können.
Natürlich ist es ganz einfach, diesen Taschenrechner nochg auf alle wissenschaftlichen Funktionen zu erweitern.
Den Code habe ich so gross geschrieben, dass Sie das Video entsprechend anhalten können, um den Code abzuschreiben.
Und Sie sehen, der Taschenrechner funktioniert perfekt.
Selzer-McKenzie
Der Code lautet:
Public Class Form1
Dim firstnumber As Double = 0
Dim secondNumber As Double = 0
Dim result As Double = 0
Dim firstNumberEntered As Boolean
Dim secondNumberEntered As Boolean
Dim operationJustEntered As Boolean
Dim OldOperation As String = "Ergebnis"
Dim currentButton As String
Dim newOperation As String
Private Sub Knopf0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf0.Click
If operationJustEntered = True Then
AusgabeBox.Text = "0"
operationJustEntered = False
Exit Sub
ElseIf (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "0"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "0"
Else
AusgabeBox.Text = AusgabeBox.Text & "0"
End If
End Sub
Private Sub Knopf1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf1.Click
If operationJustEntered = True Then
AusgabeBox.Text = "1"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "1"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "1"
Else
AusgabeBox.Text = AusgabeBox.Text & "1"
End If
End Sub
Private Sub Knopf2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf2.Click
If operationJustEntered = True Then
AusgabeBox.Text = "2"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "2"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "2"
Else
AusgabeBox.Text = AusgabeBox.Text & "2"
End If
End Sub
Private Sub Knopf3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf3.Click
If operationJustEntered = True Then
AusgabeBox.Text = "3"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "3"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "3"
Else
AusgabeBox.Text = AusgabeBox.Text & "3"
End If
End Sub
Private Sub Knopf4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf4.Click
If operationJustEntered = True Then
AusgabeBox.Text = "4"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "4"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "4"
Else
AusgabeBox.Text = AusgabeBox.Text & "4"
End If
End Sub
Private Sub Knopf5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf5.Click
If operationJustEntered = True Then
AusgabeBox.Text = "5"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "5"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "5"
Else
AusgabeBox.Text = AusgabeBox.Text & "5"
End If
End Sub
Private Sub Knopf6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf6.Click
If operationJustEntered = True Then
AusgabeBox.Text = "6"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "6"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "6"
Else
AusgabeBox.Text = AusgabeBox.Text & "6"
End If
End Sub
Private Sub Knopf7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf7.Click
If operationJustEntered = True Then
AusgabeBox.Text = "7"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "7"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "7"
Else
AusgabeBox.Text = AusgabeBox.Text & "7"
End If
End Sub
Private Sub Knopf8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf8.Click
If operationJustEntered = True Then
AusgabeBox.Text = "8"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "8"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "8"
Else
AusgabeBox.Text = AusgabeBox.Text & "8"
End If
End Sub
Private Sub Knopf9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf9.Click
If operationJustEntered = True Then
AusgabeBox.Text = "9"
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text.Contains(".")) Then
AusgabeBox.Text = AusgabeBox.Text & "9"
ElseIf Val(AusgabeBox.Text) = 0 Then
AusgabeBox.Text = "9"
Else
AusgabeBox.Text = AusgabeBox.Text & "9"
End If
End Sub
Private Sub btnDec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDec.Click
If operationJustEntered = True Then
AusgabeBox.Text = "."
operationJustEntered = False
Exit Sub
End If
If (AusgabeBox.Text).Contains(".") Then
Exit Sub
Else
AusgabeBox.Text = AusgabeBox.Text & "."
End If
End Sub
Private Sub KnopfLöschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KnopfLöschen.Click
reset()
End Sub
Sub reset()
AusgabeBox.Text = ""
OldOperation = "Ergebnis"
firstnumber = 0
secondNumber = 0
firstNumberEntered = False
secondNumberEntered = False
operationJustEntered = False
currentButton = False
End Sub
Private Sub KnopfGeteiltDurch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KnopfGeteiltDurch.Click
newOperation = "GeteiltDurch"
If OldOperation = "Ergebnis" Then
firstnumber = Val(AusgabeBox.Text)
OldOperation = "GeteiltDurch"
Else
calculateResult()
firstnumber = result
OldOperation = "GeteiltDurch"
End If
operationJustEntered = True
End Sub
Private Sub KnopfMultiplizieren_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KnopfMultiplizieren.Click
newOperation = "multiplizieren"
If OldOperation = "Ergebnis" Then
firstnumber = Val(AusgabeBox.Text)
OldOperation = "multiplizieren"
Else
calculateResult()
firstnumber = result
OldOperation = "multiplizieren"
End If
operationJustEntered = True
End Sub
Private Sub KnopfPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KnopfPlus.Click
newOperation = "addieren"
If OldOperation = "Ergebnis" Then
firstnumber = Val(AusgabeBox.Text)
OldOperation = "addieren"
Else
calculateResult()
firstnumber = result
OldOperation = "addieren"
End If
operationJustEntered = True
End Sub
Private Sub KnopfMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KnopfMinus.Click
newOperation = "subtraieren"
If OldOperation = "Ergebnis" Then
firstnumber = Val(AusgabeBox.Text)
OldOperation = "subtraieren"
Else
calculateResult()
firstnumber = result
OldOperation = "subtraieren"
End If
operationJustEntered = True
End Sub
Private Sub KnopfErgebnis_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KnopfErgebnis.Click
currentButton = "Ergebnis"
calculateResult()
operationJustEntered = True
OldOperation = "Ergebnis"
End Sub
Sub calculateResult()
Dim answer As Double
If OldOperation = "GeteiltDurch" Then
If Val(AusgabeBox.Text) = 0 Then
reset()
AusgabeBox.Text = "Fehler"
Exit Sub
End If
secondNumber = Val(AusgabeBox.Text)
answer = Math.Round((firstnumber / secondNumber), 12)
result = answer
firstNumberEntered = True
firstnumber = True
firstnumber = Val(AusgabeBox.Text)
OldOperation = currentButton
End If
If OldOperation = "multiplizieren" Then
secondNumber = Val(AusgabeBox.Text)
answer = Math.Round((firstnumber * secondNumber), 12)
result = answer
firstNumberEntered = True
firstnumber = True
firstnumber = Val(AusgabeBox.Text)
OldOperation = currentButton
End If
If OldOperation = "addieren" Then
secondNumber = Val(AusgabeBox.Text)
answer = Math.Round((firstnumber + secondNumber), 12)
result = answer
firstNumberEntered = True
firstnumber = True
firstnumber = Val(AusgabeBox.Text)
OldOperation = currentButton
End If
If OldOperation = "subtraieren" Then
secondNumber = Val(AusgabeBox.Text)
answer = Math.Round((firstnumber - secondNumber), 12)
result = answer
firstNumberEntered = True
firstnumber = True
firstnumber = Val(AusgabeBox.Text)
OldOperation = currentButton
End If
answer = Math.Round(answer, 12)
If answer > 999999999999 Then
AusgabeBox.Text = "Fehler"
Else
AusgabeBox.Text = CStr(answer)
End If
End Sub
Private Sub btnNegate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNegate.Click
Dim answer As Double = Val(AusgabeBox.Text)
answer = -1.0 * answer
AusgabeBox.Text = answer.ToString()
End Sub
End Class
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.