ExcelVBA・간이 계산기

8681 단어 ExcelVBA

간이 계산기 작성


  • Excel VBA를 사용하여 계산기 만들기

  • 사전 준비


  • 계산기 포맷 작성


  • 이번 목표


  • VBA를 사용하여 알고리즘에 대한 이해를 깊게합니다
  • else/else if의 구분 이해
  • 초보자를 위한 공부법
  • 신졸 공부 과제

  • 코딩


    
    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
    
    

    코딩 자세한 내용은 코멘트 아웃을 확인하시기 바랍니다.

    좋은 웹페이지 즐겨찾기