Montag, 4. Juli 2011

Visual Basic 2010 Excel VBA Taschenrechner programmieren SelMcKenzie Selzer-McKenzie

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.