人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 辦公軟件教程 > 詳細頁面

Excel VBA 中定時關閉的 MsgBox 一個未公開的API

Excel VBA 中定時關閉的 MsgBox 一個未公開的API

更新時間:2024-01-23 文章作者:未知 信息來源:網絡 閱讀次數:

Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數據處理軟件。

了解 VBA 的朋友們都知道,VBA 中自帶的 MsgBox 不能自動關閉,需要用戶做出交互后才能關閉。但是在某些特定情況下,我們需要 Msgbox 在指定時間內沒有用戶操作的情況下自動關閉,然后繼續運行代碼。一般采取的方法是使用Wscript.Shell 的 Popup 方法,或者自定義窗體, 或者采用 SetTimer 等來實現。這里推薦一個未公開的 API 函數—— MessageBoxTimeout 實現定時關閉消息框,感覺十分有用, 這里為了方便我們把它的名稱聲明為 MsgBoxTimeout,將 wType 聲明為 VbMsgBoxStyle。

Excel VBA 中定時關閉的 MsgBox 一個未公開的API

函數的聲明如下(32位):

Private Declare Function MsgBoxTimeout
Lib "user32"
Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As VbMsgBoxStyle, _
ByVal wlange As Long, _
ByVal dwTimeout As Long)
As Long

此函數的參數如下:
?hwnd:消息框擁有者窗口的句柄,可以設為 0
?lpText:消息框顯示內容,類似于 MsgBox 函數的第一個參數 Prompt
?lpCaption:消息框標題,類似于 MsgBox 函數的第三個參數 Caption
?wType:消息框類型,類似于 MsgBox 函數的第二個參數 Buttons
?wlange:函數擴展,一般取 0
?dwTimeout:消息框延遲關閉時間,單位為毫秒
返回的值和 vbMsgBoxResult 常數一樣,多了一個返回值 32000 表示超過延時時間未選擇任何按鈕。

具體例子見附件:

點擊鏈接從百度網盤下載

示例代碼如下:

?

'****************************************
'---此模塊演示一個可以延時關閉的消息框---
'****************************************
#If Win64 Then '64位
Private Declare PtrSafe Function MsgBoxTimeout _
Lib "user32" _
Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As LongPtr, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As VbMsgBoxStyle, _
ByVal wlange As Long, _
ByVal dwTimeout As Long) _
As Long
#Else
Private Declare Function MsgBoxTimeout _
Lib "user32" _
Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As VbMsgBoxStyle, _
ByVal wlange As Long, _
ByVal dwTimeout As Long) _
As Long
#End If

Sub btnMsgbox_Click()
Dim xRet As Long
xRet = MsgBoxTimeout(0, "此對話框如無交互操作將在 2 秒后自動關閉", "ExcelFans.com", vbYesNo + vbInformation, 1, 2000)
Select Case xRet
Case 32000
Debug.Print "超時自動關閉"
Case vbYes
Debug.Print "選擇""是""按鈕"
Case vbNo
Debug.Print "選擇""否""按鈕"
End Select
End Sub


Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 贞丰县| 楚雄市| 霍城县| 虹口区| 故城县| 报价| 苍山县| 遂川县| 中山市| 乾安县| 儋州市| 会泽县| 博爱县| 彭泽县| 萨嘎县| 广南县| 儋州市| 新闻| 石城县| 车致| 泰来县| 崇信县| 淄博市| 兴城市| 盐山县| 鄂托克旗| 施秉县| 湖南省| 贵阳市| 教育| 万盛区| 萨迦县| 中江县| 西华县| 昭平县| 龙门县| 沾化县| 公主岭市| 沐川县| 慈利县| 克拉玛依市|