VB小程序-圆形面积计算器
- 格式:doc
- 大小:222.00 KB
- 文档页数:2
VB程序简单计算器最近学完VB,感觉很好,写了个计算器程序,虽然花了不少时间,可也着实高兴。
其中遇到很多问题,最终也在各种资料中得到解决。
现在附上截图和全部代码,希望和大家交流一下,相互学习。
也希望能帮助到准备做计算器的同学。
计算器最终执行文件图标:计算器包括三个窗体(form):主页面form1:其中的“欢迎各位到此一游”是闪烁效果,呵呵,是自己想着无聊,就想出这么个玩意。
与计算器计算功能无关。
具体实现看下来代码。
Form1的实现代码:Public haha As BooleanPrivate Sub Command1_Click()Dim a As Integera = MsgBox("亲爱的你,真的想要退出本系统吗?", _vbYesNo + vbInformation + vbDefaultButton1, "退出系统前的询问撒(⊙o⊙)")If a = 6 Then '表示当选择“是”的时候的返回值EndEnd IfEnd SubPrivate Sub Command2_Click()Me.HideForm2.ShowEnd SubPrivate Sub Command3_Click()Me.HideForm3.ShowEnd SubPrivate Sub Form_Load()haha = FalseEnd SubPrivate Sub Timer1_Timer()haha = Not hahaIf haha ThenLabel2.ForeColor = &HFF00FFElseLabel2.ForeColor = vbWhiteEnd IfEnd Sub有些像图像等一些可见的控件属性就没在代码里写了,直接在属性里设置了。
页面(form2):此页面将鼠标点上去,还有意想不到的效果喲。
全部代码为:Dim isFocus1, isFocus2 As BooleanPrivate Sub Command1_Click()If isFocus1 Then '判断焦点在那个文本框中,便于实现按钮输入Text1.Text = Text1.Text & 0End IfIf isFocus2 ThenText2.Text = Text2.Text & 0End IfEnd SubPrivate Sub Command10_Click() If isFocus1 ThenText1.Text = Text1.Text & 9 End IfIf isFocus2 ThenText2.Text = Text2.Text & 9 End IfEnd SubPrivate Sub Command11_Click() If isFocus1 ThenText1.Text = Text1.Text & "." End IfIf isFocus2 ThenText2.Text = Text2.Text & "." End IfEnd SubPrivate Sub Command12_Click() If isFocus1 ThenText1.Text = -Val(Text1.Text)End IfIf isFocus2 ThenText2.Text = -Val(Text2.Text)End IfEnd SubPrivate Sub Command13_Click()Dim a As Integera = Val(Text1.Text) + Val(Text2.Text)Text3.Text = Val(Text1.Text) & "+" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfEnd SubPrivate Sub Command14_Click()Dim a As Integera = Val(Text1.Text) - Val(Text2.Text)Text3.Text = Val(Text1.Text) & "-" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfEnd SubPrivate Sub Command15_Click()a = Val(Text1.Text) * Val(Text2.Text)Text3.Text = Val(Text1.Text) & "×" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfEnd SubPrivate Sub Command16_Click() '除法的特殊性,除数不能为零If Val(Text2.Text) Thena = Val(Text1.Text) / Val(Text2.Text)Text3.Text = Val(Text1.Text) & "÷" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfElseText3.Text = "无穷大∞"MsgBox "亲,除数不可以为零的哟!", vbInformation, "矮油,不得了嘞(*^__^*)"Text2.Text = ""Text2.SetFocusEnd IfEnd SubPrivate Sub Command17_Click() '实现清零,并将焦点给文本框1Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd SubPrivate Sub Command18_Click()Me.Hide '进入计算器1Form1.ShowEnd SubPrivate Sub Command2_Click() If isFocus1 ThenText1.Text = Text1.Text & 1 End IfIf isFocus2 ThenText2.Text = Text2.Text & 1 End IfEnd SubPrivate Sub Command3_Click() If isFocus1 ThenText1.Text = Text1.Text & 2 End IfIf isFocus2 ThenText2.Text = Text2.Text & 2 End IfEnd SubPrivate Sub Command4_Click() If isFocus1 ThenText1.Text = Text1.Text & 3 End IfIf isFocus2 ThenText2.Text = Text2.Text & 3 End IfEnd SubPrivate Sub Command5_Click() If isFocus1 ThenText1.Text = Text1.Text & 4 End IfIf isFocus2 ThenText2.Text = Text2.Text & 4 End IfEnd SubPrivate Sub Command6_Click() If isFocus1 ThenText1.Text = Text1.Text & 5 End IfIf isFocus2 ThenText2.Text = Text2.Text & 5 End IfEnd SubPrivate Sub Command7_Click() If isFocus1 ThenText1.Text = Text1.Text & 6 End IfIf isFocus2 ThenText2.Text = Text2.Text & 6 End IfEnd SubPrivate Sub Command8_Click() If isFocus1 ThenText1.Text = Text1.Text & 7 End IfIf isFocus2 ThenText2.Text = Text2.Text & 7 End IfEnd SubPrivate Sub Command9_Click() If isFocus1 ThenText1.Text = Text1.Text & 8End IfIf isFocus2 ThenText2.Text = Text2.Text & 8End IfEnd SubPrivate Sub Form_Load()isFocus1 = False: isFocus2 = FalseEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Label4.ForeColor = vbBlackLabel4.FontUnderline = FalseLabel4.FontBold = FalseEnd SubPrivate Sub Label4_Click()Form3.ShowEnd SubPrivate Sub Label4_MouseMove(Button As Integer, Shift As Integer, X AsSingle, Y As Single)Label4.ForeColor = vbGreen Label4.FontUnderline = True Label4.FontBold = True End SubPrivate Sub Text1_GotFocus() isFocus1 = TrueisFocus2 = FalseEnd SubPrivate Sub Text2_GotFocus() isFocus2 = TrueisFocus1 = FalseEnd Sub页面(form3):这里面的亮点自己找哦。
For personal use only in study and research;not for commercial use用VB6.0编写简易计算器效果图:废话不多说,直接上步骤一、创建控件组1、创建控件组的方法??首先创建一个命令按钮,调整其大小(觉得合适就行),名称为Command1,Caption 属性为数字 0 ;然后进行“复制”和“粘贴”,当选择“粘贴”时,出现对话框提示已有一个同名控件,询问是否创建控件组,选择“是”后,即创建了一个名为“Command”的控件组。
这时,第一个按钮的Index属性值默认为“0”,第二个的Index属性值自动设为“1”,并且大小与第一个按钮相同,只需修改其 Caption 属性为数字“1”并将其拖至合适位置即可。
此后继续使用“粘贴”的方法建立其他控件组中其余按钮,共20个按钮,每建立一个,就将它拖到合适处,并修改相应的Caption属性值。
2、各控件组其属性设置如下:二、编写代码Dim s1 As Single, s2 As Single, ysf As String'定义两个单精度数变量用与存放参与运算的数,一个字符型存放运算符Private Sub Command1_Click(Index As Integer)Text1.Text = Text1.Text & Command1(Index).Caption'将command1的单击事件与文本框显示的内容连接End SubPrivate Sub Command2_Click()Text1.Text = Text1.Text + "."If (InStr(Text1.Text, ".") = 1) Then'第一位不能为小数Text1.Text = ""End IfIf InStr(Text1.Text, ".") < Len(Text1.Text) Then '防止出现两个小数点Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub Command3_Click()s2 = Val(Text1.Text) '开始加减乘除运算Select Case ysfCase "+"Text1.Text = s1 + s2Case "-"Text1.Text = s1 - s2Case "*"Text1.Text = s1 * s2Case "/"If s2 = 0 ThenMsgBox "分母不能为零!"Text1.Text = ""ElseText1.Text = s1 / s2End IfEnd SelectText1 = IIf(Left(Text1.Text, 1) = ".", 0 & Text1.Text, Text1.Text) '这个很关键,如果没有这个的话,得出小于1的小数前面没有0End SubPrivate Sub Command4_Click()If Text1.Text = "" Then '文本为空就结束Exit SubEnd IfText1.Text = Left(Text1.Text, Len(Text1.Text) - 1) '文本退一格End SubPrivate Sub Command5_Click()Text1.Text = "" '清除当前框内文本End SubPrivate Sub Command6_Click(Index As Integer)s1 = Val(Text1.Text) '将s1隐藏起来ysf = Command6(Index).CaptionText1.Text = ""End SubPrivate Sub Command7_Click()If Left(Text1.Text, 1) <> "-" Then '判断作为负数Text1.Text = "-" & Text1.TextElseText1.Text = Right(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub Command8_Click()Text1.Text = Text1.Text * Text1.Text '平方End Sub各位朋友,可以将红色代码复制到相应位置,不清楚的可以全选复制,但是一定要按照我的步骤和给的名称来哦!还可以再添加按钮Private Sub Command9_Click() '这是退出代码EndEnd Sub三、测试,成功的话给个好评哦!谢谢各位下载与支持!这个可以编写作为作业哦!仅供个人参考仅供个人用于学习、研究;不得用于商业用途。
使用V B设计一个简单的小程序计算圆的
面积
使用VB设计一个简单的小程序——计算圆的面积
1、窗体设计
计算圆的面积的应用程序窗体上的控件
类(控件)对象用途
TextBox
Text1 供用户输入圆的半径
Text2 供应用程序输出圆的面积
Label
Label1 用来向用户说明文本框Text1的用途
Label2 用来向用户说明文本框Text1的用途CommandButton Command1
用户通过该按钮通知应用程序:数据输入完
毕,开始计算
各对象的属性值
类(控件)对象属性设置的属性值
TextBox
Text1
Text 空串
BackColor 黄色
Text2
Text 空串
BackColor 天蓝色
Label
Label1 Caption 输入圆的半径
Label2 Caption 圆的面积CommandButton Command1 Caption 计算
2、代码设计
Private Sub Command1_Click()
r = Val(Text1.Text)
Text2.Text = Str(3.1416 * r * r)
End Sub
3、问题
应用程序如果改为“计算扇形面积”的话,该应用程序的窗体和代码应做如何修改?。
零基础VB制作简易计算器Feb. 16, 2014 by 王斌(华宁一中)作为一位初学者来说,VB这个东西似乎有些难(谁不难啊),但是仔细琢磨之后,又觉得和我们的生活密切相关。
我们可以使用它来制作一个简易的计算器哦!我自己大概只花了5~6天的时间来粗略地学习来一下简易计算器的制作,特在此和各位分享一下我的心得。
我也是第一次做这个东西,感觉编程序是那些高材生或技术人员才可以干的事情。
其实,你也可以当一次这样的技术人员(是不是感觉自己的档次提高了不少?哈哈!)。
特此申明:本人能力有限,所做的计算器只能进行如下运算加法:可连续相加9次减法:可连续相减9次乘法·除法各可运算1次我们先从基础的东西说起一、启动:1.“开始”按钮----“程序”----“Microsoft Visual Basic6.0中文版”2.选“新建”选项卡新建:建立新的工程现存:选择和打开现有的工程最新:最近使用过的工程3.单击“标准EXE”项,再单击“打开”按钮二、退出:在菜单文件(F)项中选“退出”或单击“关闭”按钮建立一个VB应用程序的一般步骤:1. 设计窗体,建立用户界面的对象;2. 设置各对象的属性;3. 为必要的对象进行事件过程的编程;4. 程序运行与调试;5. 保存文件和编译。
好,先来认识一下我们即将要用到的工具吧,下面的这个叫工具箱我们开始来制作它:一.显示屏和按键1.使用工具箱中右边的第二个按钮(文本框)在图1.2上拖出一个框,为Text12.然后,再使用工具箱中右边的第三个按钮(命令按钮)分别拖出你喜欢的形状(我认为还是正方形.长方形最好)电脑就会自动给它们编号mand2等。
此时,你使用鼠标左键单击它们中的任意一个,如:Command9.在右边的框中便会出现:(名称)Command9你找到Caption ,将Command9改写成你想要的数字你还可以设置一个清除键:clear。
加号减号乘号除号的制作方法也和其他按键一样的。
vb常⽤程序代码1、求半径为r的圆的⾯积,要求⽤户从键盘输⼊半r。
程序代码:Private Sub Form_click()Const PI = 3.14Dim r%Dim s!r = InputBox("请输⼊半径r的值:", "求圆的⾯积") s = PI * r * r Form1.FontSize = 16Print "半径是" + Str(r) + "的圆的⾯积是" + Str(s) End Sub 2、输⼊三个整数,从⼩到⼤顺序输出。
程序代码:Private Sub Form_click()a = InputBox("a")b = InputBox("b")c = InputBox("c")Print "排序前:"; a, b, cIf a > b Then t = a: a = b: b = tIf a > c Then t = a: a = c: c = tIf b > c Then t = b: b = c: c = tPrint "排序后:"; a, b, cEnd Sub3、输⼊三个整数,从⼤到⼩顺序输出。
程序代码:Private Sub Form_click()a = InputBox("a")b = InputBox("b")c = InputBox("c")Print "排序前:"; a, b, cIf aIf a < c Then t = a: a = c: c = tIf b < c Then t = b: b = c: c = tPrint "排序后:"; a, b, cEnd Sub4、输⼊x的值,输出对应的值。
多功能计算器界面如下图所示。
实现代码如下:Public b As SinglePublic flag, first As IntegerDim narray(100) As Single '存放文本框1中输入的多个数据Dim i As Integer '存放输入数组的实际长度'单次运算Dim a As Single '存放第一个操作数Dim key As String '存放运算符'以上在模块中定义变量Private Sub cmd0_Click() '单击数字键0Text1.Text = Text1.Text + cmd0.Caption '可用"&"代替"+"End SubPrivate Sub cmd1_Click() '单击数字键1Text1.Text = Text1.Text + cmd1.CaptionEnd SubPrivate Sub cmd2_Click() '单击数字键2Text1.Text = Text1.Text + cmd2.CaptionEnd SubPrivate Sub cmd3_Click() '单击数字键3Text1.Text = Text1.Text + cmd3.CaptionEnd SubPrivate Sub cmd4_Click() '单击数字键4Text1.Text = Text1.Text + cmd4.CaptionEnd SubPrivate Sub cmd5_Click() '单击数字键5Text1.Text = Text1.Text + cmd5.CaptionEnd SubPrivate Sub cmd6_Click() '单击数字键6Text1.Text = Text1.Text + cmd6.CaptionEnd SubPrivate Sub cmd7_Click() '单击数字键7Text1.Text = Text1.Text + cmd7.CaptionEnd SubPrivate Sub cmd8_Click() '单击数字键8Text1.Text = Text1.Text + cmd8.CaptionEnd SubPrivate Sub cmd9_Click() '单击数字键9Text1.Text = Text1.Text + cmd9.CaptionEnd SubPrivate Sub cmddot_Click() '连接小数点Text1.Text = Text1.Text + cmddot.CaptionIf InStr(Text1.Text, ".") < Len(Text1.Text) Then'防止出现多个小数点Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub cmdcls_Click() '单击CE键Text1.Text = ""End SubPrivate Sub add_Click() '单击“+”,保存第一个操作数和运算符 a = Val(Text1.Text)key = add.CaptionText1.Text = " "End SubPrivate Sub subs_Click() '单击“-”a = Val(Text1.Text)key = subs.CaptionText1.Text = " "End SubPrivate Sub mul_Click() '单击“*”a = Val(Text1.Text)key = mul.CaptionText1.Text = " "End SubPrivate Sub div_Click() '单击“/”a = Val(Text1.Text)key = div.CaptionText1.Text = " "End SubPrivate Sub modi_Click() '单击“Mod”a = Val(Text1.Text)key = more.CaptionText1.Text = " "End SubPrivate Sub mulpi_Click() '单击“^”a = Val(Text1.Text)key = mulpi.CaptionText1.Text = " "End SubPrivate Sub sign_Click() '单击“+/-”,改变操作数符号Text1.Text = -Val(Text1.Text)End SubPrivate Sub equal_Click() '单击“=”Select Case key '判断运算符Case "+": Text1.Text = a + Val(Text1.Text)Case "-": Text1.Text = a - Val(Text1.Text)Case "*": Text1.Text = a * Val(Text1.Text)Case "/": Text1.Text = a / Val(Text1.Text)Case "\": Text1.Text = a \ Val(Text1.Text)Case "mod": Text1.Text = a Mod Val(Text1.Text)Case "^": Text1.Text = a ^ Val(Text1.Text)Case "<": Text1.Text = a < Val(Text1.Text)Case ">": Text1.Text = a > Val(Text1.Text)Case "<>": Text1.Text = a <> Val(Text1.Text)Case "Like": b = "*" & Trim(Text1.Text) & "*"If (Str(a) Like b) Then Text1.Text = True Else Text1.Text = False Case "Not": Text1.Text = Not aCase "And": Text1.Text = a And Val(Text1.Text)Case "Or": Text1.Text = a Or Val(Text1.Text)Case "Xor": Text1.Text = a Xor Val(Text1.Text)End SelectEnd SubPrivate Sub less_Click() '单击“<”a = Val(Text1.Text)key = less.CaptionText1.Text = " "End SubPrivate Sub more_Click() '单击“>”a = Val(Text1.Text)key = more.CaptionText1.Text = " "End SubPrivate Sub notequal_Click() '单击“<>”a = Val(Text1.Text)key = notequal.CaptionText1.Text = " "End SubPrivate Sub likes_Click() '单击“Likes”a = Val(Text1.Text)key = likes.CaptionText1.Text = " "End SubPrivate Sub cmdnot_Click() '单击“Not”a = Val(Text1.Text)key = cmdnot.CaptionText1.Text = " "End SubPrivate Sub cmdand_Click() '单击“And”a = Val(Text1.Text)key = cmdand.CaptionText1.Text = " "End SubPrivate Sub cmdor_Click() '单击“Or”a = Val(Text1.Text)key = cmdor.CaptionText1.Text = " "End SubPrivate Sub cmdxor_Click() '单击“Xor”a = Val(Text1.Text)key = cmdxor.CaptionText1.Text = " "End SubPrivate Sub Command3_Click(Index As Integer) '函数区中功能实现,Command3'为函数区控件数组名Select Case IndexCase 0Text2.Text = Sin(Val(Trim$(Text1.Text))) '调用内部函数sinCase 1Text2.Text = Cos(Val(Trim$(Text1.Text)))Case 2Text2.Text = Abs(Val(Trim$(Text1.Text)))Case 3Text2.Text = Sqr(Val(Trim$(Text1.Text)))Case 4Text2.Text = Hex$(Val(Trim$(Text1.Text)))Case 5Text2.Text = Oct$(Val(Trim$(Text1.Text)))Case 6Text2.Text = Asc(Trim$(Text1.Text))Case 7Text2.Text = Rnd(Val(Trim$(Text1.Text)))Case 8Text2.Text = DateCase 9Text2.Text = Len(Trim$(Text1.Text))Case 10Text2.Text = sum1() '调用自定义函数求和Case 11Text2.Text = ave() '调用自定义函数求平均值Case 12 '12为max命令按钮的控件数组Index值Dim m As SingleCall max2(m) '调用自定义子过程求最大值Text2.Text = m 'm为调用过程得到的最大值'Text2.Text = max() '调用自定义函数过程求最大值Case 13Text2.Text = min() '调用自定义函数过程求最小值Case 14Text2.Text = sort() '调用自定义函数过程排序Case 15'Text2.Text = fac() '调用自定义函数过程求阶乘Text2.Text = fac1(Val(Text1.Text))'调用自定义函数过程求阶乘,用递归实现End SelectEnd SubPrivate Function sum1()Dim k As IntegerDim s As Singles = 0For k = 1 To i - 1s = s + narray(k)Next ksum1 = sEnd FunctionPrivate Function max()Dim k As IntegerDim s As Single, m As Singlem = narray(1)For k = 2 To iIf m < narray(k) Then m = narray(k) Next kmax = mEnd FunctionPrivate Function ave() '求平均值Dim k As IntegerDim s As Single, m As SingleFor k = 1 To is = s + narray(k)Next kave = s / (i - 1)End FunctionPrivate Function min() '求最小值函数Dim k As IntegerDim s As Single, m As Singlem = narray(1)For k = 2 To i - 1If m > narray(k) Then m = narray(k) Next kmin = mEnd FunctionPrivate Function sort() '排序函数Dim k As Integer, j As IntegerDim s As String, m As SingleFor k = 1 To i - 2For j = 1 To i - 1If narray(j) < narray(j + 1) Thenm = narray(j)narray(j) = narray(j + 1)narray(j + 1) = mEnd IfNext jNext kFor k = 1 To i - 1s = s+" "+Str$(narray(k)) '将排序结果存放到字符串s,以便带回到主调程序中Next ksort = sEnd FunctionPrivate Function fac() '求阶乘函数Dim k As Integer, j As IntegerDim m As SingleIf InStr(Trim$(Text1.Text), " ") > 1 Then'如果在文本输入框中输入了多个数据,则计算一个'数据的阶乘j = first '数组元素narray()中第一个元素Else: j = Val(Trim$(Text1.Text))End Ifm = 1For k = 1 To jm = m * kNext kfac = mEnd FunctionPrivate Sub Text1_KeyPress(Keyasc As Integer)'在文本框1中输入多个数据,以空格分隔,按回'车键结束,识别数据存放到数组narray( )中Dim c As StringDim n As Integer, k As Integeri = 1k = 1If Keyasc = 13 Then '按下回车键For n = 0 To Len(Text1.Text) - 1c = Mid$(Text1.Text, n + 1, 1)If c = " " Thennarray(i) = Val(Mid$(Text1.Text, k, n - k + 1))'识别数据存放在数组narray(i)中k = k + Len(Str$(narray(i))) '下一个数据位置起点i = i + 1 '每识别一个数据数组实际长度加1End IfNext nEnd Iffirst = narray(1)End SubPrivate Sub max2(m As Single) '求数组元素的最大值Dim k As Integerm = narray(1)For k = 2 To iIf m < narray(k) Then m = narray(k)Next kEnd SubPrivate Function fac1(n As Long) '递归求阶乘If n > 1 Thenfac1 = fac1(n - 1) * nElsef ac1 = 1End IfEnd Function。
2.3属性设置窗体和各控件的属性设置如下表所示2.4 系统功能本系统的主要功能及任务是1.简单计算2.科学计算2.5 系统功能模块图一.界面设计。
对象属性设置第三章详细设计3.1窗体3.2程序代码Public sum As DoublePublic k As StringPublic pi As DoublePublic c As DoublePublic d As DoublePublic n As DoubleFunction Log10(X)Log10 = Log(X) / Log(10)End FunctionFunction Logn(X)Logn = Log(X) / Log(n)End FunctionPrivate Sub check_Click()Shell "C:\WINDOWS\explorer.exe /263885058/blog/1322900561" End SubPrivate Sub Command1_Click(Index As Integer)Select Case IndexCase 1Text1.Text = Text1.Text & 1Case 2Text1.Text = Text1.Text & 2Case 3Text1.Text = Text1.Text & 3Case 4Text1.Text = Text1.Text & 4Case 5Text1.Text = Text1.Text & 5Case 6Text1.Text = Text1.Text & 6Case 7Text1.Text = Text1.Text & 7Case 8Text1.Text = Text1.Text & 8Case 9Text1.Text = Text1.Text & 9Case 0Text1.Text = Text1.Text & 0Case 10Text1.Text = Text1.Text &"."End SelectEnd SubPrivate Sub Command2_Click(Index As Integer)Select Case IndexCase 0sum = Text1.TextText1.Text = ""k = "+"Case 1sum = Text1.TextText1.Text = ""k = "-"Case 2sum = Text1.TextText1.Text = ""k = "*"Case 3sum = Text1.TextText1.Text = ""k = "/"End SelectEnd SubPrivate Sub Command3_Click()Dim a As Doublea = Text1.TextIf k = "+" Thensum = sum + aText2.Text = sumElseIf k = "-" Thensum = sum - aText2.Text = sumElseIf k = "*" Thensum = sum * aText2.Text = sumElseIf k = "/" Thensum = sum / aText2.Text = sumElseIf k = "sin" Then'等号的三角计算sum = Sin(a * pi / 180)Text2.Text = sumElseIf k = "cos" Thensum = Cos(a * pi / 180)Text2.Text = sumElseIf k = "tan" Thensum = Tan(a * pi / 180)Text2.Text = sumElseIf k = "cot" Thensum = 1 / (Tan(a * pi / 180))Text2.Text = sumElseIf k = "lg" Then'等号的lg计算sum = Log(Val(Text1.Text))Text2.Text = sumElseIf k = "ln" Then'等号的ln计算sum = Log10(Val(Text1.Text))Text2.Text = sumElseIf k = "logn" Then'等号的log n a计算sum = Logn(Val(Text1.Text))Text2.Text = sumElseIf k = "2" Then'等号的幂函数计算sum = (Val(Text1.Text)) ^ 2Text2.Text = sumElseIf k = "c" Thensum = Val(Text1.Text) ^ cText2.Text = sumElseIf k = "0.5" Then'等号的开方运算sum = (Val(Text1.Text)) ^ 0.5Text2.Text = sumElseIf k = "d" Thensum = (Val(Text1.Text)) ^ (1 / d)Text2.Text = sumEnd IfEnd SubPrivate Sub Command4_Click(Index As Integer)Dim b As Integerb = Len(Text1.Text)If b > 1 ThenText1.Text = Val(Str(Left(Text1.Text, Len(Text1.Text) - 1))) ElseText1.Text = ""End IfEnd SubPrivate Sub Command5_Click()Text1.Text = ""Text2.Text = ""Label2.Caption = ""Label3.Caption = ""a = 0b = 0k = ""End SubPrivate Sub Command6_Click(Index As Integer)Select Case IndexCase 0Label2.Caption = "sin"k = "sin"Case 1Label2.Caption = "cos"k = "cos"Case 2Label2.Caption = "tan"k = "tan"Case 3Label2.Caption = "cot"k = "cot"Case 4'对数计算Label2.Caption = "lg"k = "lg"Case 5Label2.Caption = "ln"k = "ln"Case 6n = Val(InputBox("请输入对数运算的底数", 请输入数字)) Label2.Caption = "log" '普通对数计算Label4.Caption = nk = "logn"Case 7'幂运算Label3.Caption = "2"k = "2"Case 8c = Val(InputBox("请输入运算幂指数", 输入数字))Label3.Caption = ck = "c"Case 9'幂运算Label2.Caption = "√"k = "0.5"Case 10'开方运算d = Val(InputBox("请输入需要开多少次方", 输入数字))Label2.Caption = d &"√"k = "d"End SelectEnd SubPrivate Sub Command7_Click()Shell "C:\WINDOWS\explorer.exe " End SubPrivate Sub Command8_Click()Text1.Text = sumEnd SubPrivate Sub Command9_Click()EndEnd SubPrivate Sub end_Click()EndEnd SubPrivate Sub explain_Click()End SubPrivate Sub Form_Load()pi = 4 * Atn(1)End SubPrivate Sub help_Click()End SubPrivate Sub Text1_Change()End Sub。
VBA 中的计算器程序设计指南在VBA中,计算器程序设计可以帮助我们实现各种数学运算,为项目、工作或学习提供更高效的计算能力。
本文将为您提供一份VBA中计算器程序设计指南,帮助您轻松编写一个功能强大的计算器程序。
首先,我们需要在VBA中创建一个用户界面,包括各种按钮和文本框,用于输入和显示计算结果。
可以使用Excel的用户窗体工具箱(UserForm Toolbox)来设计和布局计算器界面,具体步骤如下:1. 打开Excel,按下ALT + F11,打开VBA编辑器窗口。
2. 在VBA编辑器窗口中,右击项目窗格中的“插入”,选择“用户窗体”。
3. 在用户窗体设计器中,使用工具箱中的按钮、文本框和标签等控件,设计计算器界面。
可以根据需要添加数字按钮、运算符按钮和其他辅助按钮,以及显示结果的文本框。
设计完用户界面后,我们需要编写VBA代码实现计算器的功能。
下面是一些关键的设计原则和功能实现指南:1. 响应数字按钮的点击事件:为每个数字按钮添加一个点击事件,当用户点击该按钮时,在文本框中显示相应数字。
2. 实现基本算术运算:为加、减、乘、除等运算符按钮添加点击事件,在文本框中显示相应的运算符。
在文本框中输入完数值后,点击等号按钮,通过VBA代码实现相应的运算逻辑,将结果显示在文本框中。
3. 支持连续运算和括号:可以通过设计一个存储当前表达式的字符串变量来实现这一功能。
每个点击事件结束后,将按钮的值添加到该字符串变量中,以构建完整的表达式。
在计算结果后,可以清空该字符串变量,以支持连续的运算。
4. 错误处理和异常情况判断:在进行数学计算时,需要考虑用户输入的合法性和数值范围的限制。
可以通过使用条件判断语句和异常处理代码来实现针对不合法输入和异常情况的处理。
5. 支持其他功能按钮:除了基本的算术运算,还可以添加其他功能按钮,例如求平方根、倒数、百分比等按钮。
通过为这些按钮添加点击事件,实现相应的功能。
6. 设计符合用户界面的交互逻辑:关注用户界面的易用性,例如在用户输入错误时给出提示,支持使用“Backspace”按钮删除输入的数字等。
Excel VBA 编程 典型实例——设计圆面积函数
在VBA 中,提供了大量的内置函数。
比如字符串函数Mid()、统计函数Max()等。
在编程过程中,直接引用就可以了,非常方便。
但有时用户需要按自己的要求定制函数,比如我们需要计算半径为r 的圆的面积CA 。
下面具体介绍如何定义圆面积的方法,以及如何实现该函数的调用,从而计算出面积的值。
1.练习要点
● VBA 代码
● 调用函数
2.操作步骤:
(1)进入VBE 窗口,并双击【工程管理器】窗口中的Sheet1工作表。
然后,在弹出的代码编辑窗口中,输入声明常量的代码,如图9-6所示。
图9-6 声明常量
(2)在声明常量的下方定义函数,其代码如下图9-7所示。
图9-7 定义函数
其中,定义函数的代码如下:
声明常量
Debug.Print CA
End Function
(3)在代码编辑窗口中,输入调用函数的代码,如图9-8所示。
图9-8 输入代码
其中,输入的调用函数代码如下:
Sub A()
CA (5)
End Sub
(4)执行【视图】|【立即窗口】命令,即可打开【立即窗口】窗口,如图9-9所示。
图9-9 打开【立即窗口】窗口
(5)单击【标准】工具栏中的【运行子过程/用户窗体】按钮,即可在【立即窗口】中显示出圆的面积,如图9-10所示。
图9-10 显示结果
技巧按F5功能键,也可以运行程序。
输入代码
执行
结果。