Калькулятор vba excel скачать

Skip to content

Calculator using Excel VBA UserForm

  • Calculator using Excel VBA

Calculator using Excel VBA UserForm :Project Objective

Calculator using Excel VBA UserForm. Following is the step by step detailed explanation to automate this project using VBA. How we are doing calculations, clear the text, etc.

Calculator using Excel VBA

Calculator using Excel VBA

  • How we are going to develop this project module(The KEY steps)
  • Design of the Calculator
  • Code and explantion for each control
  • Final VBA Module Code(Macro)
  • Display Calculator on the WorkSheet
  • Instructions to Execute the Procedure
  • Download the Project Workbook – Excel Macro File

How we are going to develop this project module (The KEY steps) :

To createc calculator, you can see the design of the userform in the section. Let me explain the key steps to develop this caculator project. We are going to write multiple procedure s for multiple controls with the below approach.

  • Step 1: Create UserForm: we have to first create the userform from the Insert menu in VBA Editor.
  • Step 2: Place toolbox controls on the created userform: Place required controls on the userform. You can drag the controls from the toolbox and drop controls on the userform.
  • Step 3: Set properties and alignment of all controls: Properties of each control has set. It is shown in the design section.
  • Step 4: Clear Button: It is used to clear the display area.
  • Step 5: Back Button : It is used to go back one digit.
  • Step 6: Divide (/) Button: It is used for division.
  • Step 7: Multiplcation (*) Button: It is used for multiplication.
  • Step 8: Minus (-) Button: It is used for subtraction.
  • Step 9: Add (+) Button: It is used for addition.
  • Step 10: Dot (.) Button : It is used to add dot to the number.
  • Step 11: One (1) Button: It is used to display number 1.
  • Step 12: Two (2) Button: It is used to display number 2.
  • Step 13: Three (3) Button: It is used to display number 3.
  • Step 14: Four (4) Button: It is used to display number 4.
  • Step 15: Five (5) Button: It is used to display number 5.
  • Step 16: six (6) Button: It is used to display number 6.
  • Step 17: Seven (7) Button: It is used to display number 7.
  • Step 18: Eight (8) Button: It is used to display number 8.
  • Step 19: Nine (9) Button: It is used to display number 9.
  • Step 20: Zero (0) Button: It is used to display number .0
  • Step 21: EqualTo (=) Button: It is used to perform all calculations like addition, substraction, multiplcation, etc .
  • Step 22: Textbox: It is used to display result.

Design of the Calculator :

Now, let us see the design of the calculator project of each control properties and their values on the userform:

Control Property Value
UserForm Name frmCalculator
Frame Name displayFrame
TextBox Name txtDisplay
Enabled False
SpecialEffect 0-frmSpecialEffectFlat
TextAlign 3-frmTextAlignRight
TextBox Name txtRes
Value 0
Enabled False
SpecialEffect 0-frmSpecialEffectFlat
TextAlign 3-frmTextAlignRight
EnterKeyBehavior True
CommandButton Name cmdBtnclr
Caption Clear
CommandButton Name cmdBtnBak
Caption Back
CommandButton Name cmdBtnDvd
Caption /
CommandButton Name cmdBtnMult
Caption *
CommandButton Name cmdBtnMns
Caption
CommandButton Name cmdBtnAdd
Caption +
CommandButton Name cmdBtnDot
Caption .
CommandButton Name cmdBtnEql
Caption =
CommandButton Name cmdBtn1
Caption 1
CommandButton Name cmdBtn2
Caption 2
CommandButton Name cmdBtn3
Caption 3
CommandButton Name cmdBtn4
Caption 4
CommandButton Name cmdBtn5
Caption 5
CommandButton Name cmdBtn6
Caption 6
CommandButton Name cmdBtn7
Caption 7
CommandButton Name cmdBtn8
Caption 8
CommandButton Name cmdBtn9
Caption 9
CommandButton Name cmdBtn0
Caption 0

This is what I used to create calculator design. By changing or setting all the above properties and values of control the form will be looking like below.

Code and explantion for each control:

    Step 1: Create userform and do its initialization by double clicking on the userform and add the below code.

    Private Sub UserForm_Initialize()
        txtRes.MaxLength = 10
        txtDisplay.MaxLength = 10
    End Sub
    

    In the above code we are setting maximum lenth of display numbers is 10. You can change this number.

    Step 2: Double click on the textbox (Value-txtRes) and add the following code. Double click on the ‘ Textbox’ and add the below code.

    Private Sub txtRes_Change()
         If txtRes.TextLength > 10 Then
            MsgBox "Its Too long to calculate value.", vbInformation
            txtRes.Text = Left(txtRes.Text, 10)
            Exit Sub
        End If
    End Sub
    

    In the above code we are displaying message when displaying numbers are exceeding 10.

    Step 3: Set properties as mentioned above and do the alignment of all controls as shown above in the screenshot.

    Step 4: Double click on the ‘Clear Button’ and add the below code.

    Private Sub cmdBtnclr_Click()
        txtRes = 0: txtDisplay = Empty
    End Sub
    

    Step 5: Double click on the ‘ Back Button ‘ and add the below code.

    Private Sub cmdBtnBak_Click()
        If txtRes <> 0 And txtRes <> "" Then txtRes = Left(txtRes, Len(txtRes) - 1)
    End Sub
    

    Step 6: Double click on the ‘ Divide (/) Button’ and add the below code.

    Private Sub cmdBtnDvd_Click()
        If txtRes <> 0 Then
            txtDisplay = txtRes
            txtRes = 0
            calVal = "Divide"
        End If
    End Sub
    

    Step 7: Double click on the ‘ Multiplcation (*) Button’ and add the below code.

    Private Sub cmdBtnMult_Click()
        If txtRes <> 0 Then
            txtDisplay = txtRes
            txtRes = 0
            calVal = "Multiplication"
        End If
    End Sub
    

    Step 8: Double click on the ‘ Minus (-) Button’ and add the below code.

    Private Sub cmdBtnMns_Click()
        If txtRes <> 0 Then
            txtDisplay = txtRes
            txtRes = 0
            calVal = "Minus"
        End If
    End Sub
    

    Step 9: Double click on the ‘ Add (+) Button’ and add the below code.

    Private Sub cmdBtnAdd_Click()
        If txtRes <> 0 Then
            txtDisplay = txtRes
            txtRes = 0
            calVal = "Add"
        End If
    End Sub
    

    Step 10: Double click on the ‘ Dot (.) Button ‘ and add the below code.

    Private Sub cmdBtnDot_Click()
        If txtRes <> 0 Then txtRes = txtRes + "."
    End Sub
    

    Step 11: Double click on the ‘ One (1) Button’ and add the below code.

    Private Sub cmdBtn1_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn1.Caption
        Else
            txtRes = txtRes + cmdBtn1.Caption
        End If
    End Sub
    

    Step 12: Double click on the ‘ Two (2) Button’ and add the below code.

    Private Sub cmdBtn2_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn2.Caption
        Else
            txtRes = txtRes + cmdBtn2.Caption
        End If
    End Sub
    

    Step 13: Double click on the ‘ Three (3) Button’ and add the below code.

    Private Sub cmdBtn3_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn3.Caption
        Else
            txtRes = txtRes + cmdBtn3.Caption
        End If
    End Sub
    

    Step 14: Double click on the ‘ Four (4) Button’ and add the below code.

    Private Sub cmdBtn4_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn4.Caption
        Else
            txtRes = txtRes + cmdBtn4.Caption
        End If
    End Sub
    

    Step 15: Double click on the ‘ Five (5) Button’ and add the below code.

    Private Sub cmdBtn5_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn5.Caption
        Else
            txtRes = txtRes + cmdBtn5.Caption
        End If
    End Sub
    

    Step 16: Double click on the ‘ six (6) Button’ and add the below code.

    Private Sub cmdBtn6_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn6.Caption
        Else
            txtRes = txtRes + cmdBtn6.Caption
        End If
    End Sub
    

    Step 17: Double click on the ‘ Seven (7) Button’ and add the below code.

    Private Sub cmdBtn7_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn7.Caption
        Else
            txtRes = txtRes + cmdBtn7.Caption
        End If
    End Sub
    

    Step 18: Double click on the ‘ Eight (8) Button’ and add the below code.

    Private Sub cmdBtn8_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn8.Caption
        Else
            txtRes = txtRes + cmdBtn8.Caption
        End If
    End Sub
    

    Step 19: Double click on the ‘ Nine (9) Button’ and add the below code.

    Private Sub cmdBtn9_Click()
        If txtRes = 0 Then
            txtRes = cmdBtn9.Caption
        Else
            txtRes = txtRes + cmdBtn9.Caption
        End If
    End Sub
    

    Step 20: Double click on the ‘ Zero (0) Button’ and add the below code.

    Private Sub cmdBtn0_Click()
        txtRes = txtRes + cmdBtn0.Caption
    End Sub
    

    Step 21: Double click on the ‘ EqualTo (=) Button’ and add the below code.

    '21. Final Calculations
    Private Sub cmdBtnEql_Click()
    On Error GoTo ErrOcccered
        'Dim txtRes As Long
        
        If txtDisplay = "Cannot divide by Zero" Then txtDisplay = Empty
        
        If txtRes <> "" And calVal <> "" Then
            FNum = Val(txtDisplay): SNum = Val(txtRes)
            Select Case calVal
                Case "Add"
                    txtRes = FNum + SNum
                Case "Minus"
                    txtRes = FNum - SNum
                Case "Multiplication"
                    txtRes = FNum * SNum
                Case "Divide"
                    If SNum = 0 Then
                        txtRes = "Cannot divide by Zero"
                    Else
                        txtRes = FNum / SNum
                    End If
                Case Else
                    
            End Select
            txtdisplay = Empty
        End If
    ErrOcccered:
    
    End Sub
    

Final VBA Module Code(Macro):

Please find the following procedures to create calender project. Please these procedures after creation of the design (as shown in the above) and right click on the userform select ciew code and place it.

‘Variable Declaration
Public tmpVar As String
Public calVal As String

'1. Assign Maximum length to diplay numbers
Private Sub UserForm_Initialize()
    txtRes.MaxLength = 10
    txtTo display.MaxLength = 10
End Sub

'2. To displaying message when exceeding more then 10 numbers on the To display area.
Private Sub txtRes_Change()
     If txtRes.TextLength > 10 Then
        MsgBox "Its Too long to calculate value.", vbInformation
        txtRes.Text = Left(txtRes.Text, 10)
        Exit Sub
    End If
End Sub

'3. Settings properties of the userform.

'4. To clear data in the To display field
Private Sub cmdBtnclr_Click()
    txtRes = 0: txtdisplay = Empty
End Sub

'5. To go back one step.
Private Sub cmdBtnBak_Click()
    If txtRes <> 0 And txtRes <> "" Then txtRes = Left(txtRes, Len(txtRes) - 1)
End Sub

'6. For divide symbol
Private Sub cmdBtnDvd_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Divide"
    End If
End Sub

' 7. For multiplication symbol
Private Sub cmdBtnMult_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Multiplication"
    End If
End Sub

'8. For minus symbol
Private Sub cmdBtnMns_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Minus"
    End If
End Sub

'9. For addition symbol
Private Sub cmdBtnAdd_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Add"
    End If
End Sub

'10. Add Dot to the To display area
Private Sub cmdBtnDot_Click()
    If txtRes <> 0 Then txtRes = txtRes + "."
End Sub

'11. To display Number 1.
Private Sub cmdBtn1_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn1.Caption
    Else
        txtRes = txtRes + cmdBtn1.Caption
    End If
End Sub

'12. To display Number 2.
Private Sub cmdBtn2_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn2.Caption
    Else
        txtRes = txtRes + cmdBtn2.Caption
    End If
End Sub

'13. To display Number 3.
Private Sub cmdBtn3_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn3.Caption
    Else
        txtRes = txtRes + cmdBtn3.Caption
    End If
End Sub

'14. To display Number 4.
Private Sub cmdBtn4_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn4.Caption
    Else
        txtRes = txtRes + cmdBtn4.Caption
    End If
End Sub

'15. To display Number 5.
Private Sub cmdBtn5_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn5.Caption
    Else
        txtRes = txtRes + cmdBtn5.Caption
    End If
End Sub

'16. To display Number 6.
Private Sub cmdBtn6_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn6.Caption
    Else
        txtRes = txtRes + cmdBtn6.Caption
    End If
End Sub
'17. To display Number 7.
Private Sub cmdBtn7_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn7.Caption
    Else
        txtRes = txtRes + cmdBtn7.Caption
    End If
End Sub

'18. To display Number 8.
Private Sub cmdBtn8_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn8.Caption
    Else
        txtRes = txtRes + cmdBtn8.Caption
    End If
End Sub
'19. To display Number 9.
Private Sub cmdBtn9_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn9.Caption
    Else
        txtRes = txtRes + cmdBtn9.Caption
    End If
End Sub

'20. To display Number 0.
Private Sub cmdBtn0_Click()
    txtRes = txtRes + cmdBtn0.Caption
End Sub

'21. Final Calculations
Private Sub cmdBtnEql_Click()
On Error GoTo ErrOcccered
    'Dim txtRes As Long
    
    If txtDisplay = "Cannot divide by Zero" Then txtDisplay = Empty
    
    If txtRes <> "" And calVal <> "" Then
        FNum = Val(txtDisplay): SNum = Val(txtRes)
        Select Case calVal
            Case "Add"
                txtRes = FNum + SNum
            Case "Minus"
                txtRes = FNum - SNum
            Case "Multiplication"
                txtRes = FNum * SNum
            Case "Divide"
                If SNum = 0 Then
                    txtRes = "Cannot divide by Zero"
                Else
                    txtRes = FNum / SNum
                End If
            Case Else
                
        End Select
        txtdisplay = Empty
    End If
ErrOcccered:

End Sub

Display Calculator on the WorkSheet:

Here are steps to display calculator on the userform.

  1. Place any shape by clicking on insert menu from illustrations group.
  2. Right click on the shape, selct assign macro.
  3. select the shape name from the available list and click on OK button.
  4. Now, go to the Developer tab.
  5. Design Mode should be turned off from the Controls group.
  6. Now, go back to the shape and click on the created shape to see the calculator on the userform.

Instructions to Execute the Procedure:

You can download the below file and see the code and execute it.

  1. Open VBA Editor window or Press Alt+F11.
  2. Insert userform from the Insert menu.
  3. Create design as shown in theabove steps..
  4. Add Procedures by double clicking on userform.
  5. Run the project by hitting F5 key from the keyboard.
  6. hit the numbers on the calculator and see the output on the display area.
  7. And als you can use keyboard keys(up, down, left, right and enter to display numbers.

Download the Calculator Project – Excel VBA Project<:

Here is the Excel macro workbook file to explore the calculator project yourself.
Calculator using Excel VBA

Effortlessly Manage Your Projects and Resources
120+ Professional Project Management Templates!

A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.

Save Up to 85% LIMITED TIME OFFER
Excel VBA Project Management Templates
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates

Excel Pack
50+ Excel PM Templates

PowerPoint Pack
50+ Excel PM Templates

MS Word Pack
25+ Word PM Templates

Ultimate Project Management Template

Ultimate Resource Management Template

Project Portfolio Management Templates
  • Calculator using Excel VBA UserForm :Project Objective
      • In this topic:
  • How we are going to develop this project module (The KEY steps) :
  • Design of the Calculator :
  • Code and explantion for each control:
    • Step 1: Create userform and do its initialization by double clicking on the userform and add the below code.
    • Step 2: Double click on the textbox (Value-txtRes) and add the following code. Double click on the ‘ Textbox’ and add the below code.
    • Step 3: Set properties as mentioned above and do the alignment of all controls as shown above in the screenshot.
    • Step 4: Double click on the ‘Clear Button’ and add the below code.
    • Step 5: Double click on the ‘ Back Button ‘ and add the below code.
    • Step 6: Double click on the ‘ Divide (/) Button’ and add the below code.
    • Step 7: Double click on the ‘ Multiplcation (*) Button’ and add the below code.
    • Step 8: Double click on the ‘ Minus (-) Button’ and add the below code.
    • Step 9: Double click on the ‘ Add (+) Button’ and add the below code.
    • Step 10: Double click on the ‘ Dot (.) Button ‘ and add the below code.
    • Step 11: Double click on the ‘ One (1) Button’ and add the below code.
    • Step 12: Double click on the ‘ Two (2) Button’ and add the below code.
    • Step 13: Double click on the ‘ Three (3) Button’ and add the below code.
    • Step 14: Double click on the ‘ Four (4) Button’ and add the below code.
    • Step 15: Double click on the ‘ Five (5) Button’ and add the below code.
    • Step 16: Double click on the ‘ six (6) Button’ and add the below code.
    • Step 17: Double click on the ‘ Seven (7) Button’ and add the below code.
    • Step 18: Double click on the ‘ Eight (8) Button’ and add the below code.
    • Step 19: Double click on the ‘ Nine (9) Button’ and add the below code.
    • Step 20: Double click on the ‘ Zero (0) Button’ and add the below code.
    • Step 21: Double click on the ‘ EqualTo (=) Button’ and add the below code.
  • Final VBA Module Code(Macro):
  • Display Calculator on the WorkSheet:
  • Instructions to Execute the Procedure:
  • Download the Calculator Project – Excel VBA Project<:

VBA Reference

Effortlessly
Manage Your Projects

120+ Project Management Templates

Seamlessly manage your projects with our powerful & multi-purpose templates for project management.

120+ PM Templates Includes:
By PNRaoLast Updated: March 2, 2023

12 Comments

  1. Krishnaprasad Menon
    January 2, 2016 at 9:52 AM — Reply

    Very nice application.. Thank you very much

  2. rahul
    August 19, 2016 at 9:27 AM — Reply
  3. Imran
    September 27, 2016 at 7:25 PM — Reply

    Awsome .I was thinking it can only be develped in VB6

  4. Kim
    May 11, 2017 at 8:26 AM — Reply

    Thanks. It helps me a lot

  5. SACHIN
    May 30, 2018 at 8:57 AM — Reply
  6. anurup
    July 7, 2018 at 11:00 AM — Reply

    what is txtres and txtdisplay variable in here??

  7. PNRao
    July 27, 2018 at 9:55 PM — Reply

    txtDisplay is the main text box used to display the entering values, and the txtRes is the textbox used to display the Result.

  8. Godwin Inyene
    September 26, 2018 at 1:32 AM — Reply

    I love this project, please is there any how we can conmunicate cause there are some section where I got loss.
    thanks

  9. I am sticking at a place that is I can’t understand have you used two text boxes or one, if two then where you drop the second text box (is it inside the main text box, the display one).
    need help

  10. Rey
    November 22, 2018 at 10:44 AM — Reply

    I’ve got an error, “Compile error. Variable not defined” and highlight blue in calVal=
    Private Sub cmdBtnAdd_Click()
    If txtRes 0 Then
    txtDisplay = txtRes
    txtRes = 0
    calVal = “Add”
    End If
    End Sub

  11. PNRao
    July 4, 2019 at 7:09 PM — Reply

    please reenter the double quotation marks.

  12. PPP
    May 12, 2020 at 8:32 PM — Reply

Effectively Manage Your
Projects and  Resources

With Our Professional and Premium Project Management Templates!

ANALYSISTABS.COM provides free and premium project management tools, templates and dashboards for effectively managing the projects and analyzing the data.

We’re a crew of professionals expertise in Excel VBA, Business Analysis, Project Management. We’re Sharing our map to Project success with innovative tools, templates, tutorials and tips.

Project Management
Excel VBA

Download Free Excel 2007, 2010, 2013 Add-in for Creating Innovative Dashboards, Tools for Data Mining, Analysis, Visualization. Learn VBA for MS Excel, Word, PowerPoint, Access, Outlook to develop applications for retail, insurance, banking, finance, telecom, healthcare domains.

Analysistabs Logo

Page load link

VBA Projects With Source Code

3 Realtime VBA Projects
with Source Code!

Take Your Projects To The Next Level By Exploring Our Professional Projects

Go to Top

User Form calculator (demonstration)

Calculator custom dialog box

xlf-calculator-user-form-demo

Fig 1: UserForm frmCalculate — showing Normal mode (left) and Output mode (right)

the VBA code

0. Module declaration and Initialize event

Code 0a: Sub UserForm module declarations and Initialize event

Option Explicit
' Module level declarations
Dim num1 As Double, num2 As Double
Dim outRange As Range

'' ============================
'' Module contents
'' Written by Ian O'Connor
'' excelatfinance.com
' =============================
' 0. Start UserForm controls and events
'   0.0 Initialize Event
'   0.1 Form controls
'       0.1.1 Output Click
'       0.1.2 Close Click
' 1. Start Operator frame controls
'   1.1 Multiply Click
' 2. Start Input frame controls
'   2.1 Number #1 Spin Change
'   2.2 Number #1 Text KeyPress
'   2.3 Number #1 Text Change
'   2.4 Number #2 Spin Change
'   2.5 Number #2 Text KeyPress
'   2.6 Number #2 Text Change
' 3. Start Result frame controls
'   3.1 Result Change
' 4. Start Output frame controls
'   4.1 Output DropButtonClick
'   4.2 Output Click
' 5. Start calculation engine
'   5.1 Multiply
'   5.2 Divide
' =============================


' =============================
' 0. Start UserForm controls and events
' =============================
' 0.1 Initialize Event
Private Sub UserForm_Initialize()

Dim BackColor As Long: BackColor = RGB(153, 255, 102)
Dim BackColor2 As Long: BackColor2 = RGB(0, 102, 0)
Dim ForColor As Long: ForColor = RGB(255, 255, 153)

    With Me
        .BackColor = BackColor
        .lblNumber1.BackColor = BackColor
        .lblNumber2.BackColor = BackColor
        .lblOutput.BackColor = BackColor
        .lblResult.BackColor = BackColor

        .fraInput.BackColor = BackColor
        .fraOutput.BackColor = BackColor
        .fraOperator.BackColor = BackColor
        .fraResult.BackColor = BackColor

        .chkOutput.BackColor = BackColor
        .optMultiply.BackColor = BackColor
        .optDivide.BackColor = BackColor

        .cmdClose.BackColor = BackColor2
        .cmdOutput.BackColor = BackColor2


        .cmdClose.ForeColor = ForColor
        .cmdOutput.ForeColor = ForColor

        .txtNumber1.Text = 1
        .txtNumber2.Text = 1
        .spnNumber1.Value = 1
        .spnNumber2.Value = 1
        .optMultiply.Value = True
         Call multiply1

        ' Attach a ReduceStyleDropButton to the TextBox
        .txtOutputRange.DropButtonStyle = fmDropButtonStyleReduce
        .txtOutputRange.ShowDropButtonWhen = fmShowDropButtonWhenAlways
    End With


End Sub
'

0.1 Output frame control events

Code 0b: procedures

' =============================
' 0.1 Form controls
' 0.1.1 Output Click
Private Sub cmdOutput_Click()
Dim Caption(0 To 4, 0 To 1) As String

Caption(0, 0) = "First number"
Caption(1, 0) = "Second number"
Caption(2, 0) = "Result"
Caption(3, 0) = "Operation"
Caption(4, 0) = "Multiplication"
Caption(4, 1) = "Division"

    On Error GoTo errorhandler
    outRange.Select
    Selection.Resize(1, 1).Select

    Application.ScreenUpdating = False
    With Selection
        .EntireColumn.ColumnWidth = 15
        .Offset(0, 1).EntireColumn.ColumnWidth = 15
        .Offset(0, 0).Value = Caption(0, 0)
        .Offset(0, 1).Value = Val(Me.txtNumber1)

        .Offset(1, 0).Value = Caption(1, 0)
        .Offset(1, 1).Value = Val(Me.txtNumber2)

        .Offset(2, 0).Value = Caption(2, 0)
        .Offset(2, 1).Value = Val(Me.txtResult)
        .Offset(2, 1).NumberFormat = "#,##0.000"

        .Offset(3, 0).Value = "Operation"
         If optMultiply.Value = True Then
             .Offset(3, 1).Value = Caption(4, 0)
         Else
            .Offset(3, 1).Value = Caption(4, 1)
         End If
            .Offset(3, 1).HorizontalAlignment = xlHAlignRight
    End With
    Application.ScreenUpdating = True

        lblOutput.Enabled = False
        chkOutput.Value = False
        cmdOutput.Enabled = False
        txtOutputRange.Text = ""
        txtOutputRange.Enabled = False
    Exit Sub
errorhandler:
    MsgBox "You have entered an invalid range", vbCritical, "xlf Warning"
    txtOutputRange.Text = ""
    Exit Sub

End Sub

' =============================
' 0.1.2 Close Click
Private Sub CmdClose_Click()

    FrmCalc.Hide

End Sub
' =============================
' ### End UserForm controls and events
' =============================
'

1. Operator frame control events

Code 1: procedures

' =============================
' 1. Start Operator frame controls
' =============================
' 1.1 Multiply Click
Private Sub OptMultiply_Click()

    If txtNumber1.Text <> "" And txtNumber2.Text <> "" Then
        Call multiply1
    Else
        txtResult.Text = ""
    End If
    Call txtResult_Change
End Sub

' =============================
' 1.1 Divide Click
Private Sub OptDivide_Click()

    If txtNumber1.Text <> "" And txtNumber2.Text <> "" Then
        Call divide1
    Else
        txtResult.Text = ""
    End If
    Call txtResult_Change
End Sub
' =============================
' ### End Operator frame controls
' =============================
'

2. Input frame control events

Code 2: procedures

' =============================
' 2. Start Input frame controls
' =============================
' 2.1 Number #1 Spin Change
Private Sub SpnNumber1_Change()

        If txtNumber1.Text = "" Then
                spnNumber1.Value = 1
                num1 = 1
        End If

        txtNumber1.Text = spnNumber1.Value
        num1 = spnNumber1.Value

End Sub

' =============================
' 2.2 Number #1 Text KeyPress
Private Sub txtNumber1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Select Case KeyAscii
        ' Positive integers only
                Case Asc("0") To Asc("9")
                Case Else
                        KeyAscii = 0
        End Select
End Sub

' =============================
' 2.3 Number #1 Text Change
Private Sub txtNumber1_Change()
            num1 = Val(txtNumber1)
            spnNumber1.Value = num1

                If optMultiply.Value = True Then
                        Call multiply1
                Else
                        Call divide1
                End If

End Sub

' =============================
' 2.4 Number #2 Spin Change
Private Sub SpnNumber2_Change()

        If txtNumber2.Text = "" Then
                spnNumber2.Value = 1
                num2 = 1
        End If

        txtNumber2.Text = spnNumber2.Value
        num2 = spnNumber2.Value

End Sub

' =============================
' 2.5 Number #2 Text KeyPress
Private Sub txtNumber2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Select Case KeyAscii
        ' Positive integers only
                Case Asc("0") To Asc("9")
                Case Else
                        KeyAscii = 0
        End Select
End Sub

' =============================
' 2.6 Number #2 Text Change
Private Sub txtNumber2_Change()
            num2 = Val(txtNumber2)
            spnNumber2.Value = num2
                If optMultiply.Value = True Then
                        Call multiply1
                Else
                        Call divide1
                End If
End Sub
' =============================
' ### End Input frame controls
' =============================
'

3. Result frame control events

Code 3: Sub txtResult_Change procedure

' =============================
' 3. Start Result frame controls
' =============================
Private Sub txtResult_Change()
    If Me.optMultiply Then
        txtResult.Text = txtResult.Text
    ElseIf Me.optDivide Then
        txtResult.Text = Format(txtResult.Text, "#,##0.000")
    End If
End Sub
' =============================
' ### End Result frame controls
' =============================
'

4. Output frame control events

Code 4:

' =============================
' 4. Start Output frame controls
' =============================
' 4.1 Output DropButtonClick
Private Sub txtoutputRange_DropButtonClick()
' The click event for the ReduceStyleDropButton
    On Error Resume Next
        Set outRange = Application.InputBox("Select range", "xlf DemoRefText", _
                                            ActiveCell.Address(), Type:=8)
        txtOutputRange.Text = outRange.Address
        If Not outRange Is Nothing Then cmdOutput.Enabled = True
    On Error GoTo 0
End Sub

' =============================
' 4.2 Output Click
Private Sub chkOutput_Click()

    If chkOutput = True Then
        lblOutput.Enabled = True
        txtOutputRange.Enabled = True
        'cmdOutput.Enabled = True
    Else
        lblOutput.Enabled = False
        txtOutputRange.Enabled = False
        cmdOutput.Enabled = False
    End If

End Sub
' =============================
' ### End Output frame controls
' =============================
'

5. Calculation engine code

Code 5: Sub multiply1 and Sub divide1 procedures

' =============================
' 5. Start calculation engine
' =============================
' 5.1 Multiply
Private Sub multiply1()

    If txtNumber1.Text <> "" And txtNumber2.Text <> "" Then
        TxtResult.Text = num1 * num2
    End If

End Sub


' =============================
' 5.2 Divide
Private Sub divide1()

    If txtNumber1.Text <> "" And txtNumber2.Text <> "" Then
        If num2 = 0 Then
            MsgBox "Division by zero", vbCritical, "Warning"
            TxtResult.Text = ""
        Else
            TxtResult.Text = Application.Round(num1 / num2, 3)
        End If
    End If

End Sub
' =============================
' ### End calculation engine
' =============================
'
  • Download: xlf-frmCalculator.xlsm [48 KB ]
  • Development platform: Office 365 ProPlus — Excel 2016 MSO (16.0…) 64 bit
  • Published: 20th May 2018
  • Revised: Friday 24th of February 2023 — 10:38 PM, Pacific Time (PT)

Comrade741

0 / 0 / 0

Регистрация: 09.04.2015

Сообщений: 4

1

09.04.2015, 18:16. Показов 13370. Ответов 10

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Добрый день всем.
Возникла одна небольшая проблема. В короткие сроки необходимо написать калькулятор на VBA аналогичный по функционалу обычному калькулятору Windows. Проблема возникает на том, что при повторном нажатии на функцию она должна проводить математическое действие с предыдущим полученным значением, как, собственно, в обычном калькуляторе.
Мной были сделаны небольшие наброски, однако работают они через пень-колоду и почему то выдают не необходимое значение, а значение, всегда помноженное на 3 . Если получится разрешить проблему или кому то не составит труда написать рабочий с 0 (без различных специальных функций, только основные +, -, *, /, =) буду очень благодарен. Заранее спасибо.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Dim a As Double
Dim b As Double
Dim c As Double
Dim op As Double
Dim z As Integer
 
 
 
 
Private Sub CommandButton1_Click()
TextBox1.Text = TextBox1.Text & "1"
End Sub
 
Private Sub CommandButton11_Click()
op = 1
a = TextBox1.Text
 
If z = 0 Then Call operation
 
z = 1
 
If z > 0 Then
    If op = 1 Then a = a + TextBox1.Text
    TextBox1.Text = a
    z = 1
    If op = 2 Then a = a - TextBox1.Text
    TextBox1.Text = a
    z = 1
    If op = 3 Then a = a * TextBox1.Text
    TextBox1.Text = a
    z = 1
    If op = 4 Then a = a / TextBox1.Text
    TextBox1.Text = a
    z = 1
    End If
 
 
TextBox1.Text = ""
 
End Sub
 
Private Sub CommandButton12_Click()
b = TextBox1.Text
Call operation
End Sub
 
Private Sub CommandButton13_Click()
TextBox1.Text = TextBox1.Text & ","
End Sub
 
Private Sub CommandButton14_Click()
op = 3
 
 
a = TextBox1.Text
TextBox1.Text = ""
End Sub
 
Private Sub CommandButton15_Click()
op = 2
a = TextBox1.Text
TextBox1.Text = ""
End Sub
 
Private Sub CommandButton16_Click()
op = 4
a = TextBox1.Text
TextBox1.Text = ""
End Sub
 
Private Sub CommandButton2_Click()
TextBox1.Text = TextBox1.Text & "2"
End Sub
Private Sub CommandButton3_Click()
TextBox1.Text = TextBox1.Text & "3"
End Sub
Private Sub CommandButton4_Click()
TextBox1.Text = TextBox1.Text & "4"
End Sub
Private Sub CommandButton5_Click()
TextBox1.Text = TextBox1.Text & "5"
End Sub
Private Sub CommandButton6_Click()
TextBox1.Text = TextBox1.Text & "6"
End Sub
Private Sub CommandButton7_Click()
TextBox1.Text = TextBox1.Text & "7"
End Sub
Private Sub CommandButton8_Click()
TextBox1.Text = TextBox1.Text & "8"
End Sub
Private Sub CommandButton9_Click()
TextBox1.Text = TextBox1.Text & "9"
End Sub
Private Sub CommandButton10_Click()
TextBox1.Text = TextBox1.Text & "0"
End Sub
Private Sub operation()
If op = 1 Then
c = a + b
TextBox1.Text = c
End If
 
If op = 2 Then
c = a - b
TextBox1.Text = c
End If
 
If op = 3 Then
c = a * b
TextBox1.Text = c
End If
 
If op = 4 Then
c = a / b
TextBox1.Text = c
End If
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm_Click()
End Sub



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

09.04.2015, 18:24

2

А теперь посмотрите в низ страницы, «Похожие темы». Вы их просмотрели? И в разделе https://www.cyberforum.ru/vba/ , к которому относится вопрос, тоже найдутся.



0



0 / 0 / 0

Регистрация: 09.04.2015

Сообщений: 4

09.04.2015, 18:53

 [ТС]

3

Я смотрел. Ни нашел ни одного у которого реализовано условие о котором я говорил, а именно «при повторном нажатии на функцию она должна проводить математическое действие с предыдущим полученным значением, как, собственно, в обычном калькуляторе». Если написал не в ту ветку то прошу перенести админов тему в нужный раздел



0



11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

09.04.2015, 20:23

4

А теперь посмотрите в низ страницы

тогда посмотрите вверх страницы и поймите, что вы создали вопрос не в том разделе
VB<>VBA



0



0 / 0 / 0

Регистрация: 09.04.2015

Сообщений: 4

10.04.2015, 14:29

 [ТС]

5

Благодарю что переместили. Все еще актуально



0



6076 / 1320 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

10.04.2015, 16:38

6

Здравствуйте, Comrade741,

Набросал для вас простенький калькулятор. Надеюсь, он вам понравится.

С уважением,

Аксима



1



466 / 123 / 61

Регистрация: 04.03.2015

Сообщений: 325

10.04.2015, 17:27

7

Тестируйте
С дизайном не заморачивался особо.



1



Аксима

6076 / 1320 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

10.04.2015, 17:28

8

И тренировка хорошая для меня получилась, и урок — заруби себе на носу, Аксима, что нельзя скупиться на использование функции Val!

Исправленный вариант кода для кнопки с операцией:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub btn_Click()
    If FormCalc.state Then
        FormCalc.operation = btn.Caption
    Else
        Select Case FormCalc.operation
            Case "+"
                FormCalc.TextBox1 = FormCalc.operand + Val(FormCalc.TextBox1)
            Case "-"
                FormCalc.TextBox1 = FormCalc.operand - Val(FormCalc.TextBox1)
            Case "*"
                FormCalc.TextBox1 = FormCalc.operand * Val(FormCalc.TextBox1)
            Case "/"
                FormCalc.TextBox1 = FormCalc.operand / Val(FormCalc.TextBox1)
        End Select
        FormCalc.operation = btn.Caption
        FormCalc.operand = Val(FormCalc.TextBox1)
        FormCalc.state = True
    End If
End Sub



1



0 / 0 / 0

Регистрация: 09.04.2015

Сообщений: 4

10.04.2015, 20:14

 [ТС]

9

Огромное всем спасибо. Завтра утром все проверю



0



466 / 123 / 61

Регистрация: 04.03.2015

Сообщений: 325

12.04.2015, 00:14

10

Сделал похожий по функционалу на стандартный калькулятор. Может что-то упустил.
Воткнул на вкладку «ВСБ» на ленте. Смотрите.



0



5561 / 1367 / 150

Регистрация: 08.02.2009

Сообщений: 4,107

Записей в блоге: 30

12.04.2015, 00:30

11

Смотрю.



0



Содержание

  • 1 Шаги
  • 2 Советы
  • 3 Процедура создания калькулятора
    • 3.1 Способ 1: использование макросов
    • 3.2 Способ 2: применение функций
    • 3.3 Способ 3: включение встроенного калькулятора Excel
    • 3.4 Помогла ли вам эта статья?

Visual Basic 6.0 является языком программирования, разработанный Microsoft, который может легко изучить и использовать новичок, а также опытные программисты. Хотя он больше не поддерживается корпорацией Microsoft, тысячи приложений еще работают на нем и многое другое программное обеспечение все еще разрабатывается. Это руководство покажет вам, как создать простой калькулятор в Visual Basic 6.0.

Шаги

  1. как сделать калькулятор в vba excelОткройте Visual Basic 6.0 и создайте новый проект Standard EXE Project.

    Проекты Standard EXE дают вам несколько команд и инструментов, полезных для разработки простых, а также полу-сложных программ.

    • Вы также можете выбрать проект VB Enterprise Edition Project, который даст вам намного больше инструментов для работы. Для начинающего программиста предлагается использовать Standard EXE Project.
  2. как сделать калькулятор в vba excelРассмотрите окно проекта.

    В центре экрана будет поле с большим количеством точек. Это ваша форма.Форма — это место, куда вы будете добавлять различные элементы (кнопки команд, картинки, текстовые поля и т.д.) к вашей программе.

    • Слева от окна находится панель инструментов. Панель инструментов содержит различные определенные заранее элементы любой программы. Вы можете перетащить эти элементы на форму.
    • В нижней правой части окна находится макет формы. Это определяет, где ваша программа будет отображаться на экране после того, как проект будет завершен и выполнен.
    • Посередине правее находится окно свойств, которые определяют свойство любого элемента, выбранного в форме. Вы можете изменять различные свойства, используя его. Если не выбран ни один элемент, оно отображает свойства формы.
    • В правом верхнем углу находится Project Explorer. Оно показывает различные конструкции, формы, которые включены в проект.
    • Если любой из этих полей отсутствует, вы можете добавить их, нажав на кнопку «View» на панели меню Menu.
  3. как сделать калькулятор в vba excelПеретащите метку на форму, и измените заголовок метки на «Enter first number».
    • Надпись на метке можно изменить с помощью окна свойств.
  4. как сделать калькулятор в vba excel

    Создайте текстовое поле справа от первой метки. Удалите текст, который появляется внутри текстового поля, изменив пустующее поле «Text» в окне свойств.

  5. как сделать калькулятор в vba excel

    Создайте еще одну метку и измените заголовок на «Enter second number», и создайте еще одно текстовое поле для нее справа.

  6. как сделать калькулятор в vba excel

    Перетащите и создайте четыре командные кнопки ниже этих двух меток. Измените заголовок этих командных кнопок на «Add», «Subtract», «Multiply», «Divide» соответственно.

  7. как сделать калькулятор в vba excel

    Создайте еще одну метку с надписью «Result» и текстовое поле справа от нее под кнопками четырех команд. Это текстовое поле будет использоваться для отображения результата. При этом ваш проект будет завершен.

  8. как сделать калькулятор в vba excelЧтобы начать кодирование, в Project Explorer нажмите на форму, а затем выберите крайнюю левую кнопку.

    Вас перекинет в окно кодирования.

    • Нажмите на список в верхнем левом углу окна кодирования. Один за другим нажимайте на все команды (Command1, Command2, и т.д.), таким образом план кодирования из них будет виден вам в вашем окне кодирования.
  9. как сделать калькулятор в vba excelОбъявите переменные.

    Чтобы объявить:

    • Dim a, b, r as Integer
    • a является величиной, введенной в первом текстовом поле, b является величиной , введенной во втором текстовом поле и r является результатом. Вы можете использовать любые другие переменные тоже.
  10. как сделать калькулятор в vba excelЗапустите кодирование для команды добавления (Command1).

    Код будет выглядеть следующим образом:

    • Private Sub Command1_Click()
      a = Val(Text1.Text)
      b = Val(Text2.Text)
      r = a + b
      Text3.Text = r
      End Sub
  11. как сделать калькулятор в vba excelКод для команды вычитания (Command2).

    Код будет выглядеть следующим образом:

    • Private Sub Command2_Click()
      a = Val(Text1.Text)
      b = Val(Text2.Text)
      r = a — b
      Text3.Text = r
      End Sub
  12. как сделать калькулятор в vba excelКод для команды умножения (Command3).

    Кодирование будет выглядеть следующим образом:

    • Private Sub Command3_Click()
      a = Val(Text1.Text)
      b = Val(Text2.Text)
      r = a * b
      Text3.Text = r
      End Sub
  13. как сделать калькулятор в vba excelКод для команды деления (Command4).

    Кодирование будет выглядеть следующим образом:

    • Private Sub Command4_Click()
      a = Val(Text1.Text)
      b = Val(Text2.Text)
      r = a / b
      Text3.Text = r
      End Sub
  14. как сделать калькулятор в vba excelНажмите кнопку запуска или нажмите F5, чтобы выполнить свою программу.
    • Протестируйте все команды и посмотрите, работает ли ваша программа.
  15. как сделать калькулятор в vba excel

    Сохраните проект и свою форму. Создайте свой проект и сохраните его в виде .exe файла на своем компьютере; запустите его, когда вы хотите!

Советы

  • Вы можете создавать различные вариации простого калькулятора. Попробуйте использовать окно опций вместо командных кнопок.
  • Добавьте цвета на форму и текстовые поля, используя окно свойств, чтобы они выглядели красочно!
  • Если есть ошибка, научитесь отлаживать программу.

Информация о статье

Эту страницу просматривали 35 159 раза.

Была ли эта статья полезной?

как сделать калькулятор в vba excel

Для постоянных пользователей Excel не секрет, что в этой программе можно производить различные математические, инженерные и финансовые расчеты. Данная возможность реализуется путем применения различных формул и функций. Но, если Эксель постоянно использовать для проведения подобных расчетов, то актуальным становится вопрос организации необходимых для этого инструментов прямо на листе, что значительно повысит скорость вычислений и уровень удобства для пользователя. Давайте выясним, как сделать подобный калькулятор в Экселе.

Процедура создания калькулятора

Особенно насущной данная задача становится в случае необходимости постоянно проводить однотипные вычисления и расчеты, связанные с определенным видом деятельности. В целом все калькуляторы в Excel можно разделить на две группы: универсальные (используются для общих математических вычислений) и узкопрофильные. Последняя группа делится на множество видов: инженерные, финансовые, кредитные инвестиционные и т.д. Именно от функциональных возможностей калькулятора, в первую очередь, зависит выбор алгоритма его создания.

Способ 1: использование макросов

Прежде всего, рассмотрим алгоритмы создания пользовательских калькуляторов. Начнем с создания простейшего универсального калькулятора. Данный инструмент будет выполнять элементарные арифметические действия: сложение, умножение вычитание, деление и т. д. Он реализован с помощью макроса. Поэтому прежде, чем приступить к процедуре создания, нужно удостовериться, что у вас включены макросы и панель разработчика. Если это не так, то обязательно следует активировать работу макросов.

  1. После того, как указанные выше предварительные настройки выполнены, перемещаемся во вкладку «Разработчик». Жмем на иконку «Visual Basic», которая размещена на ленте в блоке инструментов «Код».
  2. Запускается окно редактора VBA. Если центральная область у вас отобразилась серым цветом, а не белым, то это означает, что поле введения кода отсутствует. Для включения его отображения переходим в пункт меню «View» и жмем по надписи «Code» в появившемся списке. Можно вместо этих манипуляций нажать функциональную клавишу F7. В любом случае поле для ввода кода появится.
  3. Тут в центральной области нам нужно записать сам код макроса. Он имеет следующий вид:

    Sub Calculator()
    Dim strExpr As String
    ' Введение данных для расчета
    strExpr = InputBox("Введите данные")
    ' Вычисление результата
    MsgBox strExpr & " = " & Application.Evaluate(strExpr)
    End Sub

    Вместо словосочетания «Введите данные» вы можете записать любое другое более приемлемое для вас. Именно оно будет располагаться над полем введения выражения.

    После того, как код введен, файл нужно перезаписать. При этом его следует сохранить в формате с поддержкой макросов. Жмем на иконку в виде дискеты на панели инструментов редактора VBA.

  4. Запускается окно сохранения документа. Переходим в ту директорию на жестком диске или съемном носителе, где хотим его сохранить. В поле «Имя файла» присваиваем документу любое желаемое наименование или оставляем то, которое присвоено ему по умолчанию. В обязательном порядке в поле «Тип файла» из всех доступных форматов выбираем наименование «Книга Excel с поддержкой макросов (*.xlsm)». После данного шага клацаем по кнопке «Сохранить» в нижней части окна.
  5. После этого можно закрывать окно редактора макросов, просто нажав на стандартный значок закрытия в виде красного квадрата с белым крестиком в его правом верхнем углу.
  6. Чтобы запустить вычислительный инструмент при помощи макроса, находясь во вкладке «Разработчик», клацаем по значку «Макросы» на ленте в блоке инструментов «Код».
  7. После этого запускается окно макросов. Выбираем наименование того макроса, который мы только что создавали, выделяем его и жмем на кнопку «Выполнить».
  8. После выполнения данного действия запускается калькулятор, созданный на основе макроса.
  9. Для того, чтобы произвести в нем вычисление, записываем в поле необходимое действие. Удобнее всего использовать для этих целей числовой блок клавиатуры, который расположен справа. После того, как выражение введено, жмем на кнопку «OK».
  10. Затем на экране появляется небольшое окошко, которое содержит в себе ответ решения заданного выражения. Для его закрытия жмем на кнопку «OK».
  11. Но согласитесь, что довольно неудобно каждый раз, когда потребуется произвести вычислительные действия, переходить в окно макросов. Давайте упростим реализацию запуска окна вычислений. Для этого, находясь во вкладке «Разработчик», щелкаем по уже знакомой нам иконке «Макросы».
  12. Затем в окне макросов выбираем наименование нужного объекта. Щелкаем по кнопке «Параметры…».
  13. После этого запускается окошко ещё меньше предыдущего. В нем мы можем задать сочетание горячих клавиш, при нажатии на которые будет запускаться калькулятор. Важно, чтобы данное сочетание не использовалось для вызова других процессов. Поэтому первые символы алфавита использовать не рекомендуется. Первую клавишу сочетания задает сама программа Эксель. Это клавиша Ctrl. Следующую клавишу задает пользователь. Пусть это будет клавиша V (хотя вы можете выбрать и другую). Если данная клавиша уже используется программой, то будет автоматически добавлена ещё одна клавиша в комбинацию – Shift. Вписываем выбранный символ в поле «Сочетание клавиш» и жмем на кнопку «OK».
  14. Затем закрываем окно макросов, нажав на стандартный значок его закрытия в верхнем правом углу.

Теперь при наборе выбранной комбинации горячих клавиш (в нашем случае Ctrl+Shift+V) будет запускаться окно калькулятора. Согласитесь, это намного быстрее и проще, чем каждый раз вызывать его через окно макросов.

Урок: Как создать макрос в Экселе

Способ 2: применение функций

Теперь давайте рассмотрим вариант создания узкопрофильного калькулятора. Он будет предназначен для выполнения конкретных, специфических задач и размещен непосредственно на листе Excel. Для создания этого инструмента будут применяться встроенные функции Эксель.

Для примера создадим инструмент конвертации величин массы. В процессе его создания нами будет использована функция ПРЕОБР. Данный оператор относится к инженерному блоку встроенных функций Эксель. Его задачей является преобразование величин одной меры измерения в другую. Синтаксис данной функции следующий:

=ПРЕОБР(число;исх_ед_изм;кон_ед_изм)

«Число» — это аргумент, имеющий вид числового значения той величины, которую надо конвертировать в другую меру измерения.

«Исходная единица измерения» — аргумент, который определяет единицу измерения величины, подлежащую конвертации. Он задается специальным кодом, который соответствует определенной единице измерения.

«Конечная единица измерения» — аргумент, определяющий единицу измерения той величины, в которую преобразуется исходное число. Он также задается с помощью специальных кодов.

Нам следует подробнее остановиться на этих кодах, так как они нам понадобятся в дальнейшем при создании калькулятора. Конкретно нам понадобятся коды единиц измерения массы. Вот их перечень:

  • g – грамм;
  • kg – килограмм;
  • mg – миллиграмм;
  • lbm – английский фунт;
  • ozm – унция;
  • sg – слэг;
  • u – атомная единица.

Нужно также сказать, что все аргументы данной функции можно задавать, как значениями, так и ссылками на ячейки, где они размещены.

  1. Прежде всего, делаем заготовку. У нашего вычислительного инструмента будет четыре поля:
    • Конвертируемая величина;
    • Исходная единица измерения;
    • Результат конвертации;
    • Конечная единица измерения.

    Устанавливаем заголовки, под которыми будут размещаться данные поля, и выделяем их форматированием (заливкой и границами) для более наглядной визуализации.

    В поля «Конвертируемая величина», «Исходная граница измерения» и «Конечная граница измерения» нами будут вводиться данные, а в поле «Результат конвертации» — выводиться конечный результат.

  2. Сделаем так, чтобы в поле «Конвертируемая величина» пользователь мог вводить только допустимые значения, а именно числа больше нуля. Выделяем ячейку, в которую будет вноситься преобразуемая величина. Переходим во вкладку «Данные» и в блоке инструментов «Работа с данными» кликаем по значку «Проверка данных».
  3. Запускается окошко инструмента «Проверка данных». Прежде всего, выполним настройки во вкладке «Параметры». В поле «Тип данных» из списка выбираем параметр «Действительное». В поле «Значение» также из списка останавливаем выбор на параметре «Больше». В поле «Минимум» устанавливаем значение «0». Таким образом, в данную ячейку можно будет вводить только действительные числа (включая дробные), которые больше нуля.
  4. После этого перемещаемся во вкладку того же окна «Сообщение для ввода». Тут можно дать пояснение, что именно нужно вводить пользователю. Он его увидит при выделении ячейки ввода величины. В поле «Сообщение» напишем следующее: «Введите величину массы, которую следует преобразовать».
  5. Затем перемещаемся во вкладку «Сообщение об ошибке». В поле «Сообщение» нам следует написать ту рекомендацию, которую увидит пользователь, если введет некорректные данные. Напишем следующее: «Вводимое значение должно быть положительным числом». После этого, чтобы завершить работу в окне проверки вводимых значений и сохранить введенные нами настройки, жмем на кнопку «OK».
  6. Как видим, при выделении ячейки появляется подсказка для ввода.
  7. Попробуем ввести туда некорректное значение, например, текст или отрицательное число. Как видим, появляется сообщение об ошибке и ввод блокируется. Жмем на кнопку «Отмена».
  8. А вот корректная величина вводится без проблем.
  9. Теперь переходим к полю «Исходная единица измерения». Тут мы сделаем так, что пользователь будет выбирать значение из списка, состоящего из тех семи величин массы, перечень которых был приведен выше при описании аргументов функции ПРЕОБР. Ввести другие значения не получится.

    Выделяем ячейку, которая находится под наименованием «Исходная единица измерения». Снова клацаем по иконке «Проверка данных».

  10. В открывшемся окне проверки данных переходим во вкладку «Параметры». В поле «Тип данных» устанавливаем параметр «Список». В поле «Источник» через точку с запятой (;) перечисляем коды наименований величин массы для функции ПРЕОБР, о которых шел разговор выше. Далее жмем на кнопку «OK».
  11. Как видим, теперь, если выделить поле «Исходная единица измерения», то справа от него возникает пиктограмма в виде треугольника. При клике по ней открывается список с наименованиями единиц измерения массы.
  12. Абсолютно аналогичную процедуру в окне «Проверка данных» проводим и с ячейкой с наименованием «Конечная единица измерения». В ней тоже получается точно такой же список единиц измерения.
  13. После этого переходим к ячейке «Результат конвертации». Именно в ней будет содержаться функция ПРЕОБР и выводить результат вычисления. Выделяем данный элемент листа и жмем на пиктограмму «Вставить функцию».
  14. Запускается Мастер функций. Переходим в нем в категорию «Инженерные» и выделяем там наименование «ПРЕОБР». Затем клацаем по кнопке «OK».
  15. Происходит открытие окна аргументов оператора ПРЕОБР. В поле «Число» следует ввести координаты ячейки под наименованием «Конвертируемая величина». Для этого ставим в курсор в поле и кликаем левой кнопкой мыши по этой ячейке. Её адрес тут же отображается в поле. Таким же образом вводим координаты в поля «Исходная единица измерения» и «Конечная единица измерения». Только на этот раз кликаем по ячейкам с такими же названиями, как у этих полей.

    После того, как все данные введены, жмем на кнопку «OK».

  16. Как только мы выполнили последнее действие, в окошке ячейки «Результат конвертации» тут же отобразился результат преобразования величины, согласно ранее введенным данным.
  17. Давайте изменим данные в ячейках «Конвертируемая величина», «Исходная единица измерения» и «Конечная единица измерения». Как видим, функция при изменении параметров автоматически пересчитывает результат. Это говорит о том, что наш калькулятор полностью функционирует.
  18. Но мы не сделали одну важную вещь. Ячейки для ввода данных у нас защищены от введения некорректных значений, а вот элемент для вывода данных никак не защищен. А ведь в него вообще нельзя ничего вводить, иначе формула вычисления будет просто удалена и калькулятор придет в нерабочее состояние. По ошибке в эту ячейку можете ввести данные и вы сами, не говоря уже о сторонних пользователях. В этом случае придется заново записывать всю формулу. Нужно заблокировать любой ввод данных сюда.

    Проблема состоит в том, что блокировка устанавливается на лист в целом. Но если мы заблокируем лист, то не сможем вводить данные в поля ввода. Поэтому нам нужно будет в свойствах формата ячеек снять возможность блокировки со всех элементов листа, потом вернуть эту возможность только ячейке для вывода результата и уже после этого заблокировать лист.

    Кликаем левой кнопкой мыши по элементу на пересечении горизонтальной и вертикальной панели координат. При этом выделяется весь лист. Затем кликаем правой кнопкой мыши по выделению. Открывается контекстное меню, в котором выбираем позицию «Формат ячеек…».

  19. Запускается окно форматирования. Переходим в нем во вкладку «Защита» и снимаем галочку с параметра «Защищаемая ячейка». Затем клацаем по кнопке «OK».
  20. После этого выделяем только ячейку для вывода результата и кликаем по ней правой кнопкой мыши. В контекстном меню клацаем по пункту «Формат ячеек».
  21. Снова в окне форматирования переходим во вкладку «Защита», но на этот раз, наоборот, устанавливаем галочку около параметра «Защищаемая ячейка». Затем щелкаем по кнопке «OK».
  22. После этого перемещаемся во вкладку «Рецензирование» и жмем на иконку «Защитить лист», которая расположена в блоке инструментов «Изменения».
  23. Открывается окно установки защиты листа. В поле «Пароль для отключения защиты листа» вводим пароль, с помощью которого при необходимости в будущем можно будет снять защиту. Остальные настройки можно оставить без изменений. Жмем на кнопку «OK».
  24. Затем открывается ещё одно небольшое окошко, в котором следует повторить ввод пароля. Делаем это и жмем на кнопку «OK».
  25. После этого при попытке внесения любых изменений в ячейку вывода результата действия будут блокироваться, о чем сообщается в появляющемся диалоговом окне.

Таким образом, мы создали полноценный калькулятор для конвертации величины массы в различные единицы измерения.

Кроме того, в отдельной статье рассказывается о создании ещё одного вида узкопрофильного калькулятора в Экселе для расчета платежей по кредитам.

Урок: Расчет аннуитетного платежа в Экселе

Способ 3: включение встроенного калькулятора Excel

Кроме того, в Экселе имеется собственный встроенный универсальный калькулятор. Правда, по умолчанию кнопка его запуска отсутствует на ленте или на панели быстрого доступа. Рассмотрим, как активировать её.

  1. После запуска программы Excel перемещаемся во вкладку «Файл».
  2. Далее в открывшемся окне переходим в раздел «Параметры».
  3. После запуска окошка параметров Excel перемещаемся в подраздел «Панель быстрого доступа».
  4. Перед нами открывается окно, правая часть которого разделена на две области. В правой ее части расположены инструменты, которые уже добавлены на панель быстрого доступа. В левой представлен весь набор инструментов, который доступен в Excel, включая отсутствующие на ленте.

    Над левой областью в поле «Выбрать команды» из перечня выбираем пункт «Команды не на ленте». После этого в списке инструментов левой области ищем наименование «Калькулятор». Найти будет просто, так как все названия расположены в алфавитном порядке. Затем производим выделения данного наименования.

    Над правой областью находится поле «Настройка панели быстрого доступа». Оно имеет два параметра:

    • Для всех документов;
    • Для данной книги.

    По умолчанию происходит настройка для всех документов. Этот параметр рекомендуется оставить без изменений, если нет предпосылок для обратного.

    После того, как все настройки совершены и наименование «Калькулятор» выделено, жмем на кнопку «Добавить», которая расположена между правой и левой областью.

  5. После того, как наименование «Калькулятор» отобразилось в правой области окна, жмем на кнопку «OK» внизу.
  6. После этого окно параметров Excel будет закрыто. Чтобы запустить калькулятор, нужно кликнуть на одноименный значок, который теперь располагается на панели быстрого доступа.
  7. После этого инструмент «Калькулятор» будет запущен. Функционирует он, как обычный физический аналог, только на кнопки нужно нажимать курсором мышки, её левой кнопкой.

Как видим, в Экселе существует очень много вариантов создания калькуляторов для различных нужд. Особенно эта возможность полезна при проведении узкопрофильных вычислений. Ну, а для обычных потребностей можно воспользоваться и встроенным инструментом программы.

Мы рады, что смогли помочь Вам в решении проблемы.

Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Да Нет

Использование макросов Заходите во вкладку «Разработчик» и кликаете на иконку «Visual Basic», которая находится на ленте в блоке инструментов «Код».

Далее запускаете окно редактора VBA. При отображении центральной области серым цветом, а не белым, это означает, что поля для введения кода нет. Для того чтобы он отображался, нужно зайти в пункт меню «View» и кликнуть на «Code» в списке, который появится.

В центральной области вводите код макроса:

Sub Calculator()

Dim strExpr As String

‘ Введение данных для расчета

strExpr = InputBox(«Введите данные»)

‘ Вычисление результата

End Sub

Вместо «Введенные данные» можно внести любое другое более подходящее название. Теперь нужно перезаписать файл. Сохраняете его в формате с поддержкой макросов. Нажимаете на иконку в виде дискеты на панели инструментов редактора VBA.

Должно запуститься окно сохранения документа. Переходите туда, куда хотите его сохранить. В строке «Имя файла» вносите то название, которое хочется. Обязательно в строке «Тип файла» выбираете «Книга Excel с поддержкой макросов (*xlcm)». Кликаете на «Сохранить» в нижней части окна.

Закрываете окно редактора макросов нажатием стандартного значка закрытия в виде красного квадрата с белым крестом в правом верхнем углу окна.

Для запуска вычислительного инструмента с помощью макроса, во вкладке «Разработчик» нажимаете на «Макросы» на ленте в блоке инструментов «Код».

Должно запуститься окно макросов, в котором выбираете название того макроса, который только что был создан. Выделяете его и нажимаете «Выполнить».

Должен запуститься калькулятор, который создан на основе макроса.

Для произведения в нем вычислений, нужно записать в поле нужное действие. Лучше всего использовать числовой блок клавиатуры, расположенный справа. Когда выражение будет введено, кликаете на ОК.

На экране отобразится небольшое окно, в котором и будет находиться ответ решения заданного выражения. Нажимаете на Ок.

Чтобы упростить реализацию запуска окна вычислений, нужно во вкладке «Разработчик» нажать на иконку «Макросы».

В окне макросов выбрать нужное наименование и кликнуть на «Параметры…».

Запуститься маленькое окошко, в котором можно вбить сочетание клавиш, при нажатии которых и будет запускаться калькулятор. Вписываете выбранный символ в поле «Сочетание клавиш» и нажимаете ОК.

Закрываете окно макроса.

Включение встроенного калькулятора ExcelПереходите во вкладку «Файл».

Далее в раздел «Параметры».

Затем в подраздел «Панель быстрого доступа».

В поле «Выбрать команды» нажимаете «Команды не на ленте» и ищите «Калькулятор». Кликаете на «Добавить».

Жмете на ОК.

Для запуска калькулятора следует нажать на одноименный значок, который расположен на панели быстрого доступа.

Калькулятор будет запущен. Функционирует он как обычный физический аналог, только на кнопки следует нажимать с помощью курсора мыши (ее левой кнопки).

 

Punker

Пользователь

Сообщений: 429
Регистрация: 01.01.1970

В частном случае, например в моем: в моем документе директора ведут записи по расходу финансовых средств из кассы.  
Сам документ нашпигован формулами и макросами, записей много, которые потом группируются, суммируются по нескольким условиям, вносят данные из других документов и т.д. и т.д.  
Т.е. используют по максимуму возможности большого калькулятора (Excel).  
Но вот операторы, вносящие данные (директора — менеджеры высшего звена), c Excel на Вы, для них главное однозначность поставленной задачи, в частности внос данных только через выпадающие списки — чтоб мозги не напрягали как обозвать тот или иной расход или приход. И в том числе сам ввод чисел расходов и доходов: поступают просьбы сделать окно ввода сумм, с кнопочкой вызова калькулятора, если перед вводом надо из первичных документов, что-то сложить, вычесть и т.д.  
Я дома пользуюсь домашней бухгалтерией Козлова, вот с неё и содрал пример, как можно было бы это реализовать.  
Еще раз повторюсь, это из разряда красивостей и удобностей нежели острой жизненной необходимости.

Like this post? Please share to your friends:
  • Калькулятор npv irr excel
  • Календарь с рабочими днями в excel
  • Калькулятор kpi в excel
  • Календарь с записями word
  • Калькулятор excel при погашении кредита