首页 > 百科知识 正文

自动弹出对话框,怎么才能让对话框自动弹出来

时间:2024-03-12 17:00:02 阅读:264 作者:金刚美驴

【分享成果,随喜正能量】有人帮是幸运,学会心怀感恩与欢喜;无人帮是命运,学会坦然面对与承担。

《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第39讲:自动弹出对话框

自动弹出对话框,怎么才能让对话框自动弹出来-第1张

第三十九讲 自动弹出对话框的其他办法

大家好,我们今日继续讲解VBA代码,今日讲解的是第39讲,自动弹出消息框的其他办法。因为我们在执行程序的时候,往往会需要一个提示,在前几个章节中讲到的MSGBOX函数可以实现这个功能,其他的办法还有没有呢?

1 MessageBoxTimeout API函数

MessageBoxTimeout是一个微软未公开的Windows API函数。实现定时消息,功能类似于MessageBox。如果用户不回应,能定时关闭消息框。函数由user32.dll导出,windows2000及以下没有此函数。

MessageBoxTimeoutA(hWnd, lpText, lpCaption, uType, wLanguageId, dwMilliseconds);

参数

① Hwnd: 消息框的拥有窗口。

② Lptext: 消息框的内容。

③ LpCaption: 消息框的标题。

④ UType: 指定一个决定对话框的内容和行为的位标志集。取值参照函数MessageBox的参数。

⑤ WLanguageId : 函数扩展,一般取0。

⑥ DwMilliseconds: 消息框延迟关闭时间,单位:毫秒。  

⑦ 返回值: 参照函数MessageBox的返回值。

⑧ 如果超时,即用户未操作,消息框自动关闭,返回32000。

2 MessageBoxTimeout的利用代码

下面我们看下面的一个实例代码:

#If VBA7 Then

[代码见教程]

#End If

Sub mynz_39() '39 自动弹出对话框的其他办法

'过程,"弹出对话","对话框标题",图标类型,默认参数,N毫秒后自动关闭

MsgBoxTimeOut 0, "录入完毕!!", "提示", 64, 0, 1500

End Sub

下面我们看代码窗口:

自动弹出对话框,怎么才能让对话框自动弹出来-第2张

代码的解读:

#If VBA7 Then

Public Declare PtrSafe Function MsgBoxTimeOut Lib "user32" Alias _

"MessageBoxTimeoutA" (ByVal hwnd As LongPtr, ByVal lpText As _

String, ByVal lpCaption As String, ByVal wType As Long, ByVal _

wlange As Long, ByVal dwTimeout As Long) As Long

#Else

Public Declare Function MsgBoxTimeOut Lib "user32" Alias _

"MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As _

String, ByVal lpCaption As String, ByVal wType As Long, ByVal _

wlange As Long, ByVal dwTimeout As Long) As Long

#End If

以上是对API函数的一个声明,适合于32位和64位两种office系统,这里的VBA7就是指64位系统的声明,关于这两种版本有什么不同,读者感兴趣可以一下我的第六套教程,其中有一定的讲解。这里只是要求大家记住就可以了,VB7是64位office的声明,后面是32位的声明。

代码的执行窗口:

自动弹出对话框,怎么才能让对话框自动弹出来-第3张

引申一下:此时的对话框和MSGBOX的对话框有什么不同呢?请读者自己思考一下,提示一点,上面的解释中讲到这个对话框会自动关闭,真的是么?我在以后的章节中会展开讲解.

今日内容回向:

1 弹出对话框的方法还有什么?

2 MsgBoxTimeOut 方法的意义是什么?

本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm

自动弹出对话框,怎么才能让对话框自动弹出来-第4张

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

自动弹出对话框,怎么才能让对话框自动弹出来-第5张

【分享成果,随喜正能量】一个人真正炫耀的东西,是善良,是教养,是包容,是见过世面的涵养,向阳而生,做一个温暖的人,不卑不亢清澈善良。

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。