Dim Num1, Num2 As Double
Dim StrNum1, StrNum2 As String
Dim FirstNum As Boolean        '判断是否是数字开头
Dim PointFlag As Boolean
Dim Runsign As Integer          '存储运算符号
Dim SignFlag As Boolean        '判断是否已有运算符号
Sub ClearData()
Num1 = 0
Num2 = 0
StrNum1 = ""
StrNum2 = ""
FirstNum = True
PointFlag = False
Runsign = 0
SignFlag = False
Label1.Caption = Trim("0.")
End Sub
Sub Run()
Num1 = Val(StrNum2)
Num2 = Val(StrNum1)
Select Case Runsign
    Case 1
        equal = Num1 + Num2
    Case 2
        equal = Num1 - Num2
    Case 3
        equal = Num1 * Num2
    Case 4
        If (Num2 = 0) Then
        Err = MsgBox("除数不能为0", vbOKOnly, "错误")
        equal = Num1
        Else
        equal = Num1 / Num2
        End If
End Select
If equal > 0 And equal <= 1 Then
StrNum2 = Trim("0") + Trim(Str(equal))
ElseIf equal < 0 And equal >= -1 Then
equal = -equal
StrNum2 = Trim("-0") + Trim(Str(equal))
Else
StrNum2 = Str(equal)
End If
StrNum1 = StrNum2
Label1.Caption = StrNum2
End SubPrivate Sub blue_Click()
Form1.BackColor = &HC00000
End SubPrivate Sub clear_Click()
Call ClearData
End SubPrivate Sub Command1_Click(Index As Integer)
Select Case Index
    Case 0 To 9
        If FirstNum Then
            StrNum1 = Trim(Str(Index))
            FirstNum = False        Else
            StrNum1 = Trim(StrNum1) + Trim(Str(Index))
            If PointFlag Then
            End If
        End If
    Label1.Caption = StrNum1
    Case 10
        If Not PointFlag Then
            If FirstNum Then
                StrNum1 = Trim("0.")
                FirstNum = False
            Else
                StrNum1 = StrNum1 + "."
            End If
        Else
            Exit Sub
        End If
        PointFlag = True
        Label1.Caption = Trim(StrNum1)
    Case 12 To 15
        FirstNum = True        '使下次可以输入新数据
        PointFlag = False      '还原标记值
        If SignFlag Then
            Call Run
        Else
            SignFlag = True
            StrNum2 = StrNum1
            'StrNum1 = ""
        End If
        Runsign = Index - 11
    Case 11
        If Not SignFlag Then
        Label1.Caption = Trim(StrNum1)
        equal = Val(StrNum1)
        FirstNum = True
        PointFlag = False
        Else
        Call Run
        SignFlag = False
        FirstNum = True
        End If
    Case 16
        Call ClearData
    Case 17
        If Val(StrNum1) >= 1 Then
        StrNum1 = "-" + Trim(StrNum1)
        ElseIf Val(StrNum1) < 1 And Val(StrNum1) > 0 Then
        StrNum1 = "-0" + Trim(Str(Val(StrNum1)))
        ElseIf Val(StrNum1) < 0 And Val(StrNum1) > -1 Then
        StrNum1 = "0" + Trim(Str(-Val(StrNum1)))
        ElseIf Val(StrNum1) <= -1 Then
        StrNum1 = Str(-Val(StrNum1))
        Else
        Exit Sub
        End If
        Label1.Caption = StrNum1
End Select
End SubPrivate Sub dedfault_Click()
Form1.BackColor = &H400000
End SubPrivate Sub exit_Click()
ext = MsgBox("确实想退出吗?", vbExclamation + vbYesNo, "退出")
If ext = vbYes Then
End
End If
End SubPrivate Sub Form_Load()
Num1 = 0
Num2 = 0
StrNum1 = ""
StrNum2 = ""
FirstNum = True
PointFlag = False
Runsign = 0
SignFlag = False
End SubPrivate Sub green_Click()
Form1.BackColor = &HC000&
End SubPrivate Sub red_Click()
Form1.BackColor = &HC0&
End SubPrivate Sub this_Click()
myexit = MsgBox("简易计算器", vbOKOnly, "关于")
End Sub