Board logo

標題: 強制 msgbox 出現在前景視窗 ? [打印本頁]

作者: stillfish00    時間: 2013-5-6 14:21     標題: 強制 msgbox 出現在前景視窗 ?

最近遇到個問題是VBA程式執行中,如果切換到其他非Excel視窗(如PowerPoint、Notepad),彈出的 msgbox 訊息就不會出現在前景,Excel 這時會閃爍,除非你再點一次 Excel 你的訊息視窗才會出現。

有沒有辦法強制它出現不用再點一次 Excel 呢? 我測試了 vbMsgBoxSetForeground 和 vbSystemModal 好像都沒效?

Sub Test()
    Application.Wait Now + TimeValue("00:00:05")    '等五秒,此時你手動切換到其他軟體視窗
    MsgBox "Finish!", vbMsgBoxSetForeground + vbSystemModal
End Sub
作者: stillfish00    時間: 2013-5-7 20:52

回復 1# stillfish00
問題已解決,自己回答
後來採用以下方法,利用AppActivate 重新 Focus EXCEL 就可以了

Sub Test()
    Application.Wait Now + TimeValue("00:00:05")    '等五秒,此時你手動切換到其他軟體視窗
    AppActivate Application     '或 AppActivate Application.Caption
    MsgBox "Finish!"
End Sub
作者: PKKO    時間: 2016-9-18 19:37

回復 2# stillfish00


    最近在尋找此方法,沒想到S大居然也有相同問題,並且解決了
小弟無法用AppActivate Application
但可以用AppActivate Application.Caption
真是太感激了

想順便再詢問延伸問題
有辦法自動關閉MSGBOX 嗎?
因為程式只要執行到那邊就會自動停止任何動作

主要應用到某網站上面,點選了上傳檔案的位置,就會跳出視窗請我選擇檔案
但該視窗一但出現就跟msgbox 一樣,完全無法動作
且無法直接透過網頁元素輸入,她的value值是:c:\fakepath\XXX
中間的值都會變成fakepath
且我強迫將她的value="C:\aaa.txt" 也完全無反應
只有將該視窗關閉之後才可動作(跟msgbox 相同)
因為該網站是會員登入制,所以無法提供




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)