【VBA研究】定时关闭MsgBox及相关未公开的API

本文介绍了如何在VBA中创建一个定时关闭的自定义消息框,以替代无法自动关闭的MsgBox。通过创建UserForm1并设置Initialize事件,结合OnTime函数实现5秒后自动关闭。同时,防止用户手动关闭窗口,确保代码按预期执行。此外,还展示了如何在不同场景下灵活应用这个方法,并提及了未公开的API MsgBoxEx。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iamlaosong文

    大家都知道,VBA中自带的MsgBox不能自动关闭,某些特殊情况下需要在指定时间内用户没有点击消息框按钮后能继续运行代码,需要用到定时关闭的消息框,我一般都是自己做一个窗体显示,再用定时函数关闭对话框。方法如下:

1、创建窗体UserForm1,窗体的初始化函数最简单如下:

Private Sub UserForm_Initialize()

    Label1.Caption = “欢迎使用本工作薄!”
    Application.OnTime Now + TimeValue("00:00:05"), "CloseMsgBox"
End Sub

下面是防止用户自己关闭窗口:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     If CloseMode <> 1 Then Cancel = 1
End Sub

2、创建一个模块,模块中放一个关闭窗体的过程CloseMsgBox:<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值