首页 >> 综合知识 >

inputbox 和 msgbox 用法实例 VBA 基础弹窗演示

2026-11-07 22:50:01 来源:网易 用户:姜心雯 

inputbox 和 msgbox 是 VBA 里面最常用的两个内置弹窗函数,inputbox 作用是弹出输入窗口,接收用户手动输入的文本内容,并且把输入内容返回给变量,msgbox 作用是弹出提示窗口,用来展示文字信息,还可以选择按钮样式并且获取用户点击的按钮返回值,两个函数经常搭配在一起使用,inputbox 负责收集用户数据,msgbox 负责输出处理结果,适合写简易交互小程序,在 Excel VBA Access VBA 里面都可以直接调用,不需要额外添加控件,上手简单,但是很多新手容易混淆二者返回值类型,还有按钮参数写法,下面深度讲解语法规则和完整可运行实例。

基础语法对照表

函数核心功能返回内容常用参数
inputbox弹出输入框,等待用户输入用户输入的字符串,如果点取消返回空字符串提示文字 窗口标题 默认值
msgbox弹出提示框,展示信息,可设置按钮图标整数型返回值,代表用户点击了哪个按钮提示文字 按钮组合 + 图标 窗口标题

详细语法说明

inputbox 语法

InputBox Prompt Title Default

Prompt 就是弹窗里面显示的提示文字,告诉用户需要输入什么内容

Title 是弹窗顶部标题栏文字,可以省略

Default 是输入框里面预先填好的默认内容,可以省略

重点注意,inputbox 默认返回类型永远是文本字符串,就算用户输入数字,得到的也是文本型数字,如果后续要做加减乘除运算,必须用转换函数转成数值,不然会出现类型错误。用户点击取消按钮的时候,函数返回空字符串,代码里面一定要做判断,防止空值参与运算报错。

msgbox 语法

MsgBox Prompt Buttons Title

Prompt 是弹窗显示的正文内容

Buttons 参数用来控制弹窗出现哪些按钮,还有图标样式,比如确定 确定取消 是与否取消,同时可以搭配警告图标 信息图标 错误图标

Title 是窗口标题

msgbox 的返回值是数字常量,比如点击确定返回 1,点击取消返回 2,点击是返回 6,点击否返回 7,可以根据这个返回值写分支判断,实现确认操作的逻辑。如果不需要判断用户点击哪个按钮,可以直接写 msgbox,不接收返回值。

完整代码实例

实例 1 inputbox 收集数字 msgbox 输出计算结果

Sub 计算演示

Dim num As String

Dim result As Double

num = InputBox ("请输入一个数字", "数字输入")

If num = "" Then

MsgBox "你点击了取消,程序退出", , "提示"

Exit Sub

End If

result = CDbl (num) 2

MsgBox "输入数字乘以 2 的结果是" & result, , "计算结果"

End Sub

这个实例演示基础流程,先用 inputbox 拿到输入内容,判断是不是空值,转换类型之后运算,最后 msgbox 弹出结果。

实例 2 msgbox 带确认按钮分支判断

Sub 确认删除演示

Dim res As Integer

res = MsgBox ("确定要执行删除吗", vbYesNo + vbQuestion, "确认窗口")

If res = vbYes Then

MsgBox "已经执行删除操作", , "提示"

Else

MsgBox "已经取消删除操作", , "提示"

End If

End Sub

这个实例重点演示 msgbox 的按钮参数和返回值判断,根据用户选择是或者否执行不同代码分支。

实例 3 inputbox 和 msgbox 组合登录简易验证

Sub 登录验证演示

Dim pwd As String

pwd = InputBox ("请输入密码", "登录窗口")

If pwd = "123456" Then

MsgBox "密码正确登录成功", vbInformation, "登录结果"

Else

MsgBox "密码错误登录失败", vbCritical, "登录结果"

End If

End Sub

常见踩坑要点

1 inputbox 输入数字直接运算报错,根源就是没有做类型转换,文本不能直接参与数学计算

2 inputbox 点取消返回空字符串,如果代码没有判断空值,后续转换数值的时候直接抛出类型不匹配错误

3 msgbox 如果要接收返回值,函数外面必须加括号,如果只是单纯弹出提示不需要返回值,不能加括号,这个是新手高频语法错误

4 inputbox 只能输入单行文本,不支持多行输入,也不能设置下拉选择,复杂输入场景就不适合继续使用 inputbox,需要换成用户窗体 UserForm

5 msgbox 弹窗是模态窗口,代码会暂停运行,必须等用户点击按钮关闭弹窗之后,后面代码才继续执行

学习练习步骤

第一步 打开 Excel,按下 Alt 加 F11 进入 VBA 编辑器,插入标准模块

第二步 复制上面实例代码,粘贴到模块里面

第三步 按 F5 运行代码,观察 inputbox 弹窗弹出,输入内容测试

第四步 修改 msgbox 的 buttons 参数,更换不同按钮和图标,观察弹窗变化

第五步 修改 inputbox 的提示文字和标题,增加空值判断和异常处理,加深理解

inputbox 和 msgbox 属于 VBA 交互入门核心组件,适合小型自动化脚本快速实现人机交互,不需要复杂界面,但是功能有局限性,掌握基础实例之后,就可以把这套组合用到表格批量处理 数据录入确认这类自动化任务里面。

【常见问题】

问题 1 inputbox 和 msgbox 能不能单独使用

回答 1 inputbox 和 msgbox 可以单独使用,inputbox 单独使用用来获取用户输入,msgbox 单独使用用来弹出提示信息,二者不是强制绑定,只是搭配使用是最常见的开发方式。

问题 2 inputbox 和 msgbox 在 VB6 里面还可以使用吗

回答 2 inputbox 和 msgbox 在 VB6 里面同样可以直接调用,语法和 Excel VBA 基本一致,依旧支持输入获取和弹窗提示还有按钮返回值。

问题 3 inputbox 和 msgbox 运行报错类型不匹配是什么原因

回答 3 inputbox 和 msgbox 相关代码出现类型不匹配,大多是 inputbox 拿到的文本没有转成数值就参与运算,或者 msgbox 接收返回值的时候语法括号书写错误。

问题 4 inputbox 和 msgbox 支持中文吗

回答 4 inputbox 和 msgbox 支持中文,提示文字窗口标题都可以填写中文,只要系统区域编码正常,中文就可以正常显示不会乱码。

【免责申明】

本文内容仅作为 VBA 编程学习参考,代码实例基于 Excel VBA 环境编写,不同版本 Office 和 VB 环境存在少量差异,运行代码前建议备份文件,因修改宏代码启用宏造成文件异常或者数据损坏,由操作者自行承担,正式业务程序建议增加完善错误捕获处理。

 

相关阅读

最新文章