ExcelVBA・간이 계산기
                                            
                                                
                                                
                                                
                                                
                                                
                                                 8681 단어  ExcelVBA
                    
간이 계산기 작성
사전 준비

이번 목표
코딩
Dim ans As Double
Dim add, subtra, mul, div As Boolean '演算子押下時にフラグをflagとして使用
Dim flag As Boolean '新規入力フラグ
'0押下時
Sub b0_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "0"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "0"
        flag = False
    End If
End Sub
'1押下時
Sub b1_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "1"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "1"
        flag = False
    End If
End Sub
'2押下時
Sub b2_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "2"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "2"
        flag = False
    End If
End Sub
'3押下時
Sub b3_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "3"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "3"
        flag = False
    End If
End Sub
'4押下時
Sub b4_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "1"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "1"
        flag = False
    End If
End Sub
'5押下時
Sub b5_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "5"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "5"
        flag = False
    End If
End Sub
'6押下時
Sub b6_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "6"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "6"
        flag = False
    End If
End Sub
'7押下時
Sub b7_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "7"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "7"
        flag = False
    End If
End Sub
'8押下時
Sub b8_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "8"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "8"
        flag = False
    End If
End Sub
'9押下時
Sub b9_Click()
    '新規入力フラグがfalseだった場合
    If flag = False Then
        '出力欄が"0"以外の時
        If Range("D4") <> "0" Then
            '表示する文字数を制限
            If Len(Range("D4")) < 12 Then
                Range("D4") = Range("D4") & "9"
            End If
        End If
    '新規入力フラグがtrueの時だった場合
    Else
        Range("D4") = "9"
        flag = False
    End If
End Sub
'AC押下時
Sub AC_Click()
    div = False
    mul = False
    subtra = False
    add = False
    ans = 0
    flag = True
    Range("D4") = "0"
End Sub
'C押下時
Sub C_Click()
    If flag = False Then
        Range("D4") = "0"
        flag = True
    End If
End Sub
Sub answer()
    If flag = False Then
        If div = True Then
            ans = ans / Range("D4")
        ElseIf mul = True Then
            ans = ans * Range("D4")
        ElseIf subtra = True Then
            ans = ans - Range("D4")
        ElseIf add = True Then
            ans = ans + Range("D4")
        Else
            ans = Range("D4")
        End If
        Range("D4") = ans
        flag = True
    End If
    div = False
    mul = False
    subtra = False
    add = False
    Range("D4") = ans
End Sub
Sub addition()
If flag = False Then
        If div = True Then
            ans = ans / Range("D4")
        ElseIf mul = True Then
            ans = ans * Range("D4")
        ElseIf subtra = True Then
            ans = ans - Range("D4")
        ElseIf add = True Then
            ans = ans + Range("D4")
        Else
            ans = Range("D4")
        End If
        Range("D4") = ans
        flag = True
    End If
    div = False
    mul = False
    subtra = False
    add = True
End Sub
Sub subtraction()
    If flag = False Then
        If div = True Then
            ans = ans / Range("D4")
        ElseIf mul = True Then
            ans = ans * Range("D4")
        ElseIf subtra = True Then
            ans = ans - Range("D4")
        ElseIf add = True Then
            ans = ans + Range("D4")
        Else
            ans = Range("D4")
        End If
        Range("D4") = ans
        flag = True
    End If
    div = False
    mul = False
    subtra = True
    add = False
End Sub
Sub multiplication()
    If flag = False Then
        If div = True Then
            ans = ans / Range("D4")
        ElseIf mul = True Then
            ans = ans * Range("D4")
        ElseIf subtra = True Then
            ans = ans - Range("D4")
        ElseIf add = True Then
            ans = ans + Range("D4")
        Else
            ans = Range("D4")
        End If
        Range("D4") = ans
        flag = True
    End If
    div = False
    mul = True
    subtra = False
    add = False
End Sub
Sub division()
    If flag = False Then
        If div = True Then
            ans = ans / Range("D4")
        ElseIf mul = True Then
            ans = ans * Range("D4")
        ElseIf subtra = True Then
            ans = ans - Range("D4")
        ElseIf add = True Then
            ans = ans + Range("D4")
        Else
            ans = Range("D4")
        End If
        Range("D4") = ans
        flag = True
    End If
    div = True
    mul = False
    subtra = False
    add = False
End Sub
코딩 자세한 내용은 코멘트 아웃을 확인하시기 바랍니다.
Reference
이 문제에 관하여(ExcelVBA・간이 계산기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t_gata/items/16345e0403b52e5bb544텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)