Excel VBA工作薄 6.2利用msgbox窗口 实现简易用户对话功能
前景提要
昨天我们分享了vba中msgbox的简单的使用方法,在昨天的学习中,我们知道了msgbox的几个不常用的参数,当时我们说在简单的弹窗提示的时候,是不需要这么多复杂的功能的,但是在进行用户对话窗体的过程中,这些功能就比较使用了,但是一个简单的弹窗如何实现用户对话交互功能呢?很简单,换一种写法就可以了。
场景模拟
假设我们现在要做一个简单的计算,方法不确定
但是不一定就是加法,也不一定就是减法,所以在写代码的 过程中,我们就不能够将这个操作写死了,如果写死的话,就非常的不灵活了,不可能要用减法的时候,你去代码中改成减法,结果下次要用加法的时候,你再去改成加法运算吧,这是一个非常low的代码,那么如何提升通用性呢?
很简单,这时候我们设计一个简单的对话窗体,让使用者来根据自己的需要进行选择他想要的方法,既然是简单的窗体,我们就不需要制作窗体了,直接用msgbox来实现,来看代码
代码区
Sub jisuan()
Dim result$
result = MsgBox("请选择要进行的运算方法,Y执行加法,N执行减法,退出选择取消", vbYesNoCancel, "运算方式的选择")
If result = vbYes Then
Cells(7, 4) = "+"
Cells(7, "g") = Cells(7, 3) + Cells(7, 5)
ElseIf result = vbNo Then
Cells(7, 4) = "-"
Cells(7, "g") = Cells(7, 3) - Cells(7, 5)
Else
Cells(7, 4) = ""
Cells(7, "g") = ""
Exit Sub
End If
End Sub
来看看效果,假设我们想要做加法运算
点击按钮能,之后出现弹窗,有三种操作可供选择,Y代表加法,N代表减法,如果还没有想好,就选择取消退出程序,来试下加法
再来试下减法
如果还没有想好呢
非常完美,通过msgbox成功实现了和用户之间对话式的交互效果,这样我们的代码的通用性就更加的高了。
代码分析
result = MsgBox("请选择要进行的运算方法,Y执行加法,N执行减法,退出选择取消", vbYesNoCancel, "运算方式的选择")
今天的关键代码之一就是这一句话
利用之前的msgbox窗体,msgbox其实是由返回值的,我们这里用result来承接msgbox返回的结果
这里新增一个知识点,vbYesNoCancel
他的作用是形成有三个选项的窗体
这个方法的选项还有很多种,大家在使用的过程中可以根据使用自己想要的模式
然后当用户做出了选择之后,result就会得到一个返回值,如果选择Yes,返回的结果就是VBYES,如果选择的是NO ,返回的就是VBNO,如果选择了退出就只能退出程序了。
之后就是最简单的加减法的运算了。大家都能够看懂了。