Calculator using Excel VBA UserForm
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
- 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.
- Place any shape by clicking on insert menu from illustrations group.
- Right click on the shape, selct assign macro.
- select the shape name from the available list and click on OK button.
- Now, go to the Developer tab.
- Design Mode should be turned off from the Controls group.
- 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.
- Open VBA Editor window or Press Alt+F11.
- Insert userform from the Insert menu.
- Create design as shown in theabove steps..
- Add Procedures by double clicking on userform.
- Run the project by hitting F5 key from the keyboard.
- hit the numbers on the calculator and see the output on the display area.
- 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
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
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:
12 Comments
-
Krishnaprasad Menon
January 2, 2016 at 9:52 AM — ReplyVery nice application.. Thank you very much
-
rahul
August 19, 2016 at 9:27 AM — Reply -
Imran
September 27, 2016 at 7:25 PM — ReplyAwsome .I was thinking it can only be develped in VB6
-
Kim
May 11, 2017 at 8:26 AM — ReplyThanks. It helps me a lot
-
SACHIN
May 30, 2018 at 8:57 AM — Reply -
anurup
July 7, 2018 at 11:00 AM — Replywhat is txtres and txtdisplay variable in here??
-
PNRao
July 27, 2018 at 9:55 PM — ReplytxtDisplay is the main text box used to display the entering values, and the txtRes is the textbox used to display the Result.
-
Godwin Inyene
September 26, 2018 at 1:32 AM — ReplyI love this project, please is there any how we can conmunicate cause there are some section where I got loss.
thanks -
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 -
Rey
November 22, 2018 at 10:44 AM — ReplyI’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 -
PNRao
July 4, 2019 at 7:09 PM — Replyplease reenter the double quotation marks.
-
PPP
May 12, 2020 at 8:32 PM — Reply
Effectively Manage Your
Projects and Resources
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.
Page load link
3 Realtime VBA Projects
with Source Code!
Go to Top
Содержание
- 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.
Шаги
- Откройте Visual Basic 6.0 и создайте новый проект Standard EXE Project.
Проекты Standard EXE дают вам несколько команд и инструментов, полезных для разработки простых, а также полу-сложных программ.
- Вы также можете выбрать проект VB Enterprise Edition Project, который даст вам намного больше инструментов для работы. Для начинающего программиста предлагается использовать Standard EXE Project.
- Рассмотрите окно проекта.
В центре экрана будет поле с большим количеством точек. Это ваша форма.Форма — это место, куда вы будете добавлять различные элементы (кнопки команд, картинки, текстовые поля и т.д.) к вашей программе.
- Слева от окна находится панель инструментов. Панель инструментов содержит различные определенные заранее элементы любой программы. Вы можете перетащить эти элементы на форму.
- В нижней правой части окна находится макет формы. Это определяет, где ваша программа будет отображаться на экране после того, как проект будет завершен и выполнен.
- Посередине правее находится окно свойств, которые определяют свойство любого элемента, выбранного в форме. Вы можете изменять различные свойства, используя его. Если не выбран ни один элемент, оно отображает свойства формы.
- В правом верхнем углу находится Project Explorer. Оно показывает различные конструкции, формы, которые включены в проект.
- Если любой из этих полей отсутствует, вы можете добавить их, нажав на кнопку «View» на панели меню Menu.
- Перетащите метку на форму, и измените заголовок метки на «Enter first number».
- Надпись на метке можно изменить с помощью окна свойств.
-
Создайте текстовое поле справа от первой метки. Удалите текст, который появляется внутри текстового поля, изменив пустующее поле «Text» в окне свойств.
-
Создайте еще одну метку и измените заголовок на «Enter second number», и создайте еще одно текстовое поле для нее справа.
-
Перетащите и создайте четыре командные кнопки ниже этих двух меток. Измените заголовок этих командных кнопок на «Add», «Subtract», «Multiply», «Divide» соответственно.
-
Создайте еще одну метку с надписью «Result» и текстовое поле справа от нее под кнопками четырех команд. Это текстовое поле будет использоваться для отображения результата. При этом ваш проект будет завершен.
- Чтобы начать кодирование, в Project Explorer нажмите на форму, а затем выберите крайнюю левую кнопку.
Вас перекинет в окно кодирования.
- Нажмите на список в верхнем левом углу окна кодирования. Один за другим нажимайте на все команды (Command1, Command2, и т.д.), таким образом план кодирования из них будет виден вам в вашем окне кодирования.
- Объявите переменные.
Чтобы объявить:
- Dim a, b, r as Integer
- a является величиной, введенной в первом текстовом поле, b является величиной , введенной во втором текстовом поле и r является результатом. Вы можете использовать любые другие переменные тоже.
- Запустите кодирование для команды добавления (Command1).
Код будет выглядеть следующим образом:
- Private Sub Command1_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a + b
Text3.Text = r
End Sub
- Private Sub Command1_Click()
- Код для команды вычитания (Command2).
Код будет выглядеть следующим образом:
- Private Sub Command2_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a — b
Text3.Text = r
End Sub
- Private Sub Command2_Click()
- Код для команды умножения (Command3).
Кодирование будет выглядеть следующим образом:
- Private Sub Command3_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a * b
Text3.Text = r
End Sub
- Private Sub Command3_Click()
- Код для команды деления (Command4).
Кодирование будет выглядеть следующим образом:
- Private Sub Command4_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a / b
Text3.Text = r
End Sub
- Private Sub Command4_Click()
- Нажмите кнопку запуска или нажмите F5, чтобы выполнить свою программу.
- Протестируйте все команды и посмотрите, работает ли ваша программа.
-
Сохраните проект и свою форму. Создайте свой проект и сохраните его в виде .exe файла на своем компьютере; запустите его, когда вы хотите!
Советы
- Вы можете создавать различные вариации простого калькулятора. Попробуйте использовать окно опций вместо командных кнопок.
- Добавьте цвета на форму и текстовые поля, используя окно свойств, чтобы они выглядели красочно!
- Если есть ошибка, научитесь отлаживать программу.
Информация о статье
Эту страницу просматривали 35 159 раза.
Была ли эта статья полезной?
Для постоянных пользователей Excel не секрет, что в этой программе можно производить различные математические, инженерные и финансовые расчеты. Данная возможность реализуется путем применения различных формул и функций. Но, если Эксель постоянно использовать для проведения подобных расчетов, то актуальным становится вопрос организации необходимых для этого инструментов прямо на листе, что значительно повысит скорость вычислений и уровень удобства для пользователя. Давайте выясним, как сделать подобный калькулятор в Экселе.
Процедура создания калькулятора
Особенно насущной данная задача становится в случае необходимости постоянно проводить однотипные вычисления и расчеты, связанные с определенным видом деятельности. В целом все калькуляторы в Excel можно разделить на две группы: универсальные (используются для общих математических вычислений) и узкопрофильные. Последняя группа делится на множество видов: инженерные, финансовые, кредитные инвестиционные и т.д. Именно от функциональных возможностей калькулятора, в первую очередь, зависит выбор алгоритма его создания.
Способ 1: использование макросов
Прежде всего, рассмотрим алгоритмы создания пользовательских калькуляторов. Начнем с создания простейшего универсального калькулятора. Данный инструмент будет выполнять элементарные арифметические действия: сложение, умножение вычитание, деление и т. д. Он реализован с помощью макроса. Поэтому прежде, чем приступить к процедуре создания, нужно удостовериться, что у вас включены макросы и панель разработчика. Если это не так, то обязательно следует активировать работу макросов.
- После того, как указанные выше предварительные настройки выполнены, перемещаемся во вкладку «Разработчик». Жмем на иконку «Visual Basic», которая размещена на ленте в блоке инструментов «Код».
- Запускается окно редактора VBA. Если центральная область у вас отобразилась серым цветом, а не белым, то это означает, что поле введения кода отсутствует. Для включения его отображения переходим в пункт меню «View» и жмем по надписи «Code» в появившемся списке. Можно вместо этих манипуляций нажать функциональную клавишу F7. В любом случае поле для ввода кода появится.
- Тут в центральной области нам нужно записать сам код макроса. Он имеет следующий вид:
Sub Calculator()
Dim strExpr As String
' Введение данных для расчета
strExpr = InputBox("Введите данные")
' Вычисление результата
MsgBox strExpr & " = " & Application.Evaluate(strExpr)
End SubВместо словосочетания «Введите данные» вы можете записать любое другое более приемлемое для вас. Именно оно будет располагаться над полем введения выражения.
После того, как код введен, файл нужно перезаписать. При этом его следует сохранить в формате с поддержкой макросов. Жмем на иконку в виде дискеты на панели инструментов редактора VBA.
- Запускается окно сохранения документа. Переходим в ту директорию на жестком диске или съемном носителе, где хотим его сохранить. В поле «Имя файла» присваиваем документу любое желаемое наименование или оставляем то, которое присвоено ему по умолчанию. В обязательном порядке в поле «Тип файла» из всех доступных форматов выбираем наименование «Книга Excel с поддержкой макросов (*.xlsm)». После данного шага клацаем по кнопке «Сохранить» в нижней части окна.
- После этого можно закрывать окно редактора макросов, просто нажав на стандартный значок закрытия в виде красного квадрата с белым крестиком в его правом верхнем углу.
- Чтобы запустить вычислительный инструмент при помощи макроса, находясь во вкладке «Разработчик», клацаем по значку «Макросы» на ленте в блоке инструментов «Код».
- После этого запускается окно макросов. Выбираем наименование того макроса, который мы только что создавали, выделяем его и жмем на кнопку «Выполнить».
- После выполнения данного действия запускается калькулятор, созданный на основе макроса.
- Для того, чтобы произвести в нем вычисление, записываем в поле необходимое действие. Удобнее всего использовать для этих целей числовой блок клавиатуры, который расположен справа. После того, как выражение введено, жмем на кнопку «OK».
- Затем на экране появляется небольшое окошко, которое содержит в себе ответ решения заданного выражения. Для его закрытия жмем на кнопку «OK».
- Но согласитесь, что довольно неудобно каждый раз, когда потребуется произвести вычислительные действия, переходить в окно макросов. Давайте упростим реализацию запуска окна вычислений. Для этого, находясь во вкладке «Разработчик», щелкаем по уже знакомой нам иконке «Макросы».
- Затем в окне макросов выбираем наименование нужного объекта. Щелкаем по кнопке «Параметры…».
- После этого запускается окошко ещё меньше предыдущего. В нем мы можем задать сочетание горячих клавиш, при нажатии на которые будет запускаться калькулятор. Важно, чтобы данное сочетание не использовалось для вызова других процессов. Поэтому первые символы алфавита использовать не рекомендуется. Первую клавишу сочетания задает сама программа Эксель. Это клавиша Ctrl. Следующую клавишу задает пользователь. Пусть это будет клавиша V (хотя вы можете выбрать и другую). Если данная клавиша уже используется программой, то будет автоматически добавлена ещё одна клавиша в комбинацию – Shift. Вписываем выбранный символ в поле «Сочетание клавиш» и жмем на кнопку «OK».
- Затем закрываем окно макросов, нажав на стандартный значок его закрытия в верхнем правом углу.
Теперь при наборе выбранной комбинации горячих клавиш (в нашем случае Ctrl+Shift+V) будет запускаться окно калькулятора. Согласитесь, это намного быстрее и проще, чем каждый раз вызывать его через окно макросов.
Урок: Как создать макрос в Экселе
Способ 2: применение функций
Теперь давайте рассмотрим вариант создания узкопрофильного калькулятора. Он будет предназначен для выполнения конкретных, специфических задач и размещен непосредственно на листе Excel. Для создания этого инструмента будут применяться встроенные функции Эксель.
Для примера создадим инструмент конвертации величин массы. В процессе его создания нами будет использована функция ПРЕОБР. Данный оператор относится к инженерному блоку встроенных функций Эксель. Его задачей является преобразование величин одной меры измерения в другую. Синтаксис данной функции следующий:
=ПРЕОБР(число;исх_ед_изм;кон_ед_изм)
«Число» — это аргумент, имеющий вид числового значения той величины, которую надо конвертировать в другую меру измерения.
«Исходная единица измерения» — аргумент, который определяет единицу измерения величины, подлежащую конвертации. Он задается специальным кодом, который соответствует определенной единице измерения.
«Конечная единица измерения» — аргумент, определяющий единицу измерения той величины, в которую преобразуется исходное число. Он также задается с помощью специальных кодов.
Нам следует подробнее остановиться на этих кодах, так как они нам понадобятся в дальнейшем при создании калькулятора. Конкретно нам понадобятся коды единиц измерения массы. Вот их перечень:
- g – грамм;
- kg – килограмм;
- mg – миллиграмм;
- lbm – английский фунт;
- ozm – унция;
- sg – слэг;
- u – атомная единица.
Нужно также сказать, что все аргументы данной функции можно задавать, как значениями, так и ссылками на ячейки, где они размещены.
- Прежде всего, делаем заготовку. У нашего вычислительного инструмента будет четыре поля:
- Конвертируемая величина;
- Исходная единица измерения;
- Результат конвертации;
- Конечная единица измерения.
Устанавливаем заголовки, под которыми будут размещаться данные поля, и выделяем их форматированием (заливкой и границами) для более наглядной визуализации.
В поля «Конвертируемая величина», «Исходная граница измерения» и «Конечная граница измерения» нами будут вводиться данные, а в поле «Результат конвертации» — выводиться конечный результат.
- Сделаем так, чтобы в поле «Конвертируемая величина» пользователь мог вводить только допустимые значения, а именно числа больше нуля. Выделяем ячейку, в которую будет вноситься преобразуемая величина. Переходим во вкладку «Данные» и в блоке инструментов «Работа с данными» кликаем по значку «Проверка данных».
- Запускается окошко инструмента «Проверка данных». Прежде всего, выполним настройки во вкладке «Параметры». В поле «Тип данных» из списка выбираем параметр «Действительное». В поле «Значение» также из списка останавливаем выбор на параметре «Больше». В поле «Минимум» устанавливаем значение «0». Таким образом, в данную ячейку можно будет вводить только действительные числа (включая дробные), которые больше нуля.
- После этого перемещаемся во вкладку того же окна «Сообщение для ввода». Тут можно дать пояснение, что именно нужно вводить пользователю. Он его увидит при выделении ячейки ввода величины. В поле «Сообщение» напишем следующее: «Введите величину массы, которую следует преобразовать».
- Затем перемещаемся во вкладку «Сообщение об ошибке». В поле «Сообщение» нам следует написать ту рекомендацию, которую увидит пользователь, если введет некорректные данные. Напишем следующее: «Вводимое значение должно быть положительным числом». После этого, чтобы завершить работу в окне проверки вводимых значений и сохранить введенные нами настройки, жмем на кнопку «OK».
- Как видим, при выделении ячейки появляется подсказка для ввода.
- Попробуем ввести туда некорректное значение, например, текст или отрицательное число. Как видим, появляется сообщение об ошибке и ввод блокируется. Жмем на кнопку «Отмена».
- А вот корректная величина вводится без проблем.
- Теперь переходим к полю «Исходная единица измерения». Тут мы сделаем так, что пользователь будет выбирать значение из списка, состоящего из тех семи величин массы, перечень которых был приведен выше при описании аргументов функции ПРЕОБР. Ввести другие значения не получится.
Выделяем ячейку, которая находится под наименованием «Исходная единица измерения». Снова клацаем по иконке «Проверка данных».
- В открывшемся окне проверки данных переходим во вкладку «Параметры». В поле «Тип данных» устанавливаем параметр «Список». В поле «Источник» через точку с запятой (;) перечисляем коды наименований величин массы для функции ПРЕОБР, о которых шел разговор выше. Далее жмем на кнопку «OK».
- Как видим, теперь, если выделить поле «Исходная единица измерения», то справа от него возникает пиктограмма в виде треугольника. При клике по ней открывается список с наименованиями единиц измерения массы.
- Абсолютно аналогичную процедуру в окне «Проверка данных» проводим и с ячейкой с наименованием «Конечная единица измерения». В ней тоже получается точно такой же список единиц измерения.
- После этого переходим к ячейке «Результат конвертации». Именно в ней будет содержаться функция ПРЕОБР и выводить результат вычисления. Выделяем данный элемент листа и жмем на пиктограмму «Вставить функцию».
- Запускается Мастер функций. Переходим в нем в категорию «Инженерные» и выделяем там наименование «ПРЕОБР». Затем клацаем по кнопке «OK».
- Происходит открытие окна аргументов оператора ПРЕОБР. В поле «Число» следует ввести координаты ячейки под наименованием «Конвертируемая величина». Для этого ставим в курсор в поле и кликаем левой кнопкой мыши по этой ячейке. Её адрес тут же отображается в поле. Таким же образом вводим координаты в поля «Исходная единица измерения» и «Конечная единица измерения». Только на этот раз кликаем по ячейкам с такими же названиями, как у этих полей.
После того, как все данные введены, жмем на кнопку «OK».
- Как только мы выполнили последнее действие, в окошке ячейки «Результат конвертации» тут же отобразился результат преобразования величины, согласно ранее введенным данным.
- Давайте изменим данные в ячейках «Конвертируемая величина», «Исходная единица измерения» и «Конечная единица измерения». Как видим, функция при изменении параметров автоматически пересчитывает результат. Это говорит о том, что наш калькулятор полностью функционирует.
- Но мы не сделали одну важную вещь. Ячейки для ввода данных у нас защищены от введения некорректных значений, а вот элемент для вывода данных никак не защищен. А ведь в него вообще нельзя ничего вводить, иначе формула вычисления будет просто удалена и калькулятор придет в нерабочее состояние. По ошибке в эту ячейку можете ввести данные и вы сами, не говоря уже о сторонних пользователях. В этом случае придется заново записывать всю формулу. Нужно заблокировать любой ввод данных сюда.
Проблема состоит в том, что блокировка устанавливается на лист в целом. Но если мы заблокируем лист, то не сможем вводить данные в поля ввода. Поэтому нам нужно будет в свойствах формата ячеек снять возможность блокировки со всех элементов листа, потом вернуть эту возможность только ячейке для вывода результата и уже после этого заблокировать лист.
Кликаем левой кнопкой мыши по элементу на пересечении горизонтальной и вертикальной панели координат. При этом выделяется весь лист. Затем кликаем правой кнопкой мыши по выделению. Открывается контекстное меню, в котором выбираем позицию «Формат ячеек…».
- Запускается окно форматирования. Переходим в нем во вкладку «Защита» и снимаем галочку с параметра «Защищаемая ячейка». Затем клацаем по кнопке «OK».
- После этого выделяем только ячейку для вывода результата и кликаем по ней правой кнопкой мыши. В контекстном меню клацаем по пункту «Формат ячеек».
- Снова в окне форматирования переходим во вкладку «Защита», но на этот раз, наоборот, устанавливаем галочку около параметра «Защищаемая ячейка». Затем щелкаем по кнопке «OK».
- После этого перемещаемся во вкладку «Рецензирование» и жмем на иконку «Защитить лист», которая расположена в блоке инструментов «Изменения».
- Открывается окно установки защиты листа. В поле «Пароль для отключения защиты листа» вводим пароль, с помощью которого при необходимости в будущем можно будет снять защиту. Остальные настройки можно оставить без изменений. Жмем на кнопку «OK».
- Затем открывается ещё одно небольшое окошко, в котором следует повторить ввод пароля. Делаем это и жмем на кнопку «OK».
- После этого при попытке внесения любых изменений в ячейку вывода результата действия будут блокироваться, о чем сообщается в появляющемся диалоговом окне.
Таким образом, мы создали полноценный калькулятор для конвертации величины массы в различные единицы измерения.
Кроме того, в отдельной статье рассказывается о создании ещё одного вида узкопрофильного калькулятора в Экселе для расчета платежей по кредитам.
Урок: Расчет аннуитетного платежа в Экселе
Способ 3: включение встроенного калькулятора Excel
Кроме того, в Экселе имеется собственный встроенный универсальный калькулятор. Правда, по умолчанию кнопка его запуска отсутствует на ленте или на панели быстрого доступа. Рассмотрим, как активировать её.
- После запуска программы Excel перемещаемся во вкладку «Файл».
- Далее в открывшемся окне переходим в раздел «Параметры».
- После запуска окошка параметров Excel перемещаемся в подраздел «Панель быстрого доступа».
- Перед нами открывается окно, правая часть которого разделена на две области. В правой ее части расположены инструменты, которые уже добавлены на панель быстрого доступа. В левой представлен весь набор инструментов, который доступен в Excel, включая отсутствующие на ленте.
Над левой областью в поле «Выбрать команды» из перечня выбираем пункт «Команды не на ленте». После этого в списке инструментов левой области ищем наименование «Калькулятор». Найти будет просто, так как все названия расположены в алфавитном порядке. Затем производим выделения данного наименования.
Над правой областью находится поле «Настройка панели быстрого доступа». Оно имеет два параметра:
- Для всех документов;
- Для данной книги.
По умолчанию происходит настройка для всех документов. Этот параметр рекомендуется оставить без изменений, если нет предпосылок для обратного.
После того, как все настройки совершены и наименование «Калькулятор» выделено, жмем на кнопку «Добавить», которая расположена между правой и левой областью.
- После того, как наименование «Калькулятор» отобразилось в правой области окна, жмем на кнопку «OK» внизу.
- После этого окно параметров Excel будет закрыто. Чтобы запустить калькулятор, нужно кликнуть на одноименный значок, который теперь располагается на панели быстрого доступа.
- После этого инструмент «Калькулятор» будет запущен. Функционирует он, как обычный физический аналог, только на кнопки нужно нажимать курсором мышки, её левой кнопкой.
Как видим, в Экселе существует очень много вариантов создания калькуляторов для различных нужд. Особенно эта возможность полезна при проведении узкопрофильных вычислений. Ну, а для обычных потребностей можно воспользоваться и встроенным инструментом программы.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Да Нет
Использование макросов Заходите во вкладку «Разработчик» и кликаете на иконку «Visual Basic», которая находится на ленте в блоке инструментов «Код».
Далее запускаете окно редактора VBA. При отображении центральной области серым цветом, а не белым, это означает, что поля для введения кода нет. Для того чтобы он отображался, нужно зайти в пункт меню «View» и кликнуть на «Code» в списке, который появится.
В центральной области вводите код макроса:
Sub Calculator()
Dim strExpr As String
‘ Введение данных для расчета
strExpr = InputBox(«Введите данные»)
‘ Вычисление результата
End Sub
Вместо «Введенные данные» можно внести любое другое более подходящее название. Теперь нужно перезаписать файл. Сохраняете его в формате с поддержкой макросов. Нажимаете на иконку в виде дискеты на панели инструментов редактора VBA.
Должно запуститься окно сохранения документа. Переходите туда, куда хотите его сохранить. В строке «Имя файла» вносите то название, которое хочется. Обязательно в строке «Тип файла» выбираете «Книга Excel с поддержкой макросов (*xlcm)». Кликаете на «Сохранить» в нижней части окна.
Закрываете окно редактора макросов нажатием стандартного значка закрытия в виде красного квадрата с белым крестом в правом верхнем углу окна.
Для запуска вычислительного инструмента с помощью макроса, во вкладке «Разработчик» нажимаете на «Макросы» на ленте в блоке инструментов «Код».
Должно запуститься окно макросов, в котором выбираете название того макроса, который только что был создан. Выделяете его и нажимаете «Выполнить».
Должен запуститься калькулятор, который создан на основе макроса.
Для произведения в нем вычислений, нужно записать в поле нужное действие. Лучше всего использовать числовой блок клавиатуры, расположенный справа. Когда выражение будет введено, кликаете на ОК.
На экране отобразится небольшое окно, в котором и будет находиться ответ решения заданного выражения. Нажимаете на Ок.
Чтобы упростить реализацию запуска окна вычислений, нужно во вкладке «Разработчик» нажать на иконку «Макросы».
В окне макросов выбрать нужное наименование и кликнуть на «Параметры…».
Запуститься маленькое окошко, в котором можно вбить сочетание клавиш, при нажатии которых и будет запускаться калькулятор. Вписываете выбранный символ в поле «Сочетание клавиш» и нажимаете ОК.
Закрываете окно макроса.
Включение встроенного калькулятора ExcelПереходите во вкладку «Файл».
Далее в раздел «Параметры».
Затем в подраздел «Панель быстрого доступа».
В поле «Выбрать команды» нажимаете «Команды не на ленте» и ищите «Калькулятор». Кликаете на «Добавить».
Жмете на ОК.
Для запуска калькулятора следует нажать на одноименный значок, который расположен на панели быстрого доступа.
Калькулятор будет запущен. Функционирует он как обычный физический аналог, только на кнопки следует нажимать с помощью курсора мыши (ее левой кнопки).
User Form calculator (demonstration)
Calculator custom dialog box
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)
Although Microsoft Excel itself is a big calculator, using Excel Macro & VBA remains a popular method to create a calculator. Obviously, lots of coding is required to build a prototype of a calculator and it can only run after a full proof debug has been performed. The article below takes you through the steps necessary to build a calculator feature in Excel VBA.
Below is the coding to create a Calculator feature in Excel VBA.
Highlights:
- Class Module
- UserForm
- Collection of Classes
- Collection of objects
Any more Excel questions? Check out our forum!
Моделируем калькулятор
с последующим выведением результатов в виде HTML страницы
Microsoft Excel имеет встроенный язык программирования — Visual Basic
for Аpplications (VBA). Этот язык позволяет создавать приложения,
выполняемые в среде Microsoft Office. Редактор Visual Basic for Application
позволяет существенно расширить возможности Excel.
С помощью VBA
можно легко и быстро создавать различные приложения, даже не являясь специалистом
в области программирования. Редактор Visual Basic for Application
имеет графическую инструментальную среду, позволяющую создавать экранные формы
и управляющие элементы. С его помощью можно создавать свои собственные функции
для Excel,
вызываемые мастером функций, разрабатывать макросы, создавать собственные меню
и многое другое.
Работа для тех, кто
владеет азами программирования на бейсике или на любом другом языке
программирования.
Программный
код:
Private Sub
userform_activate()
Width = 355
Height = 238
End Sub
Private Sub webbrouser1_statustextchange(ByVal text As String)
End Sub
Private Sub
CommandButton1_Click()
Dim x As
Double
Dim y As
Double
Dim z As
Double
x =
CDbl(TextBox1.text)
y =
CDbl(TextBox2.text)
z = x + y
TextBox3.text
= z
End Sub
Private Sub
CommandButton2_Click()
Dim x As
Double
Dim y As
Double
Dim z As
Double
x =
CDbl(TextBox1.text)
y =
CDbl(TextBox2.text)
z = x — y
TextBox3.text = z
End Sub
Private Sub
CommandButton3_Click()
Dim x As
Double
Dim y As
Double
Dim z As
Double
x = CDbl(TextBox1.text)
y =
CDbl(TextBox2.text)
z = x * y
TextBox3.text
= z
End Sub
Private Dim Dim Dim x = y = If y z = TextBox3.text Else TextBox3.text = «Делить на ноль нельзя» End End |
Private Dim Dim Dim x = y = z = TextBox3.text End |
Private Dim Dim Dim x = y = z = TextBox3.text End |
Private Dim Dim Dim x = y = z = TextBox3.text End |
Private Dim Dim Dim x = y = z = TextBox3.text End Private WebBrowser1.navigate WebBrowser1.Visible End Private Width Height WebBrowser1.Visible CommandButton9.Visible CommandButton10.Visible End |
Private Dim Dim Set Set r = fso.OpenTextFile(«C:UsersгыукDocumentsn.html», r.WriteLine r.WriteLine Dim Dim Dim x = y = z = r.WriteLine r.WriteLine r.WriteLine r.WriteLine r.WriteLine r.WriteLine r.WriteLine r.WriteLine Workbooks.Open Filename:=»C:UsersгыукDocumentsn.html» End |