Board logo

標題: [發問] 訊息方塊如何設定預設值 [打印本頁]

作者: lichang    時間: 2015-7-26 00:15     標題: 訊息方塊如何設定預設值

各位大大好,小弟最近在練習訊息方塊,限定時間後消失功能
但請問如何設定時間內沒選擇,自動選取類似"中止"而不是關閉方塊功能!!
先謝謝各位大大的解答瞜!!

Option Explicit
Sub 111()
    'Windows Script Host Object Model設定引用項目
    Dim myWsh As IWshRuntimeLibrary.WshShell
   
    Set myWsh = CreateObject("Wscript.Shell")
    Debug.Print myWsh.PopUp(Text:="WSH測試", _
        SecondsToWait:=2, Title:="WSHPopUp", Type:=2)
    Set myWsh = Nothing                 '釋放物件
End Sub
作者: azrael19    時間: 2015-7-26 09:15

各位大大好,小弟最近在練習訊息方塊,限定時間後消失功能
但請問如何設定時間內沒選擇,自動選取類似"中止 ...
lichang 發表於 2015-7-26 00:15


不管有沒有選取,訊息方塊功能都會關閉,你可以針對訊息方塊的回傳值來加上對應的處理程序...

參考說明:
https://technet.microsoft.com/en-us/library/ee156593.aspx

範例:
  1. Option Explicit

  2. Sub Ex()
  3.     'Windows Script Host Object Model設定引用項目
  4.     Dim myWsh As IWshRuntimeLibrary.WshShell
  5.     Dim intClicked As Integer
  6.     Dim intDefaultButton As Integer: intDefaultButton = vbDefaultButton1
  7.    
  8.     Set myWsh = CreateObject("Wscript.Shell")
  9.     intClicked = myWsh.PopUp(Text:="WSH測試", _
  10.         SecondsToWait:=2, Title:="WSHPopUp", Type:=vbAbortRetryIgnore + intDefaultButton)
  11.         
  12.     Debug.Print intClicked
  13.    
  14.     If -1 = intClicked Then ' 回傳值 (-1) = 設定時間內沒選擇
  15.         If vbDefaultButton1 = intDefaultButton Then
  16.             intClicked = vbAbort
  17.         ElseIf vbDefaultButton2 = intDefaultButton Then
  18.             intClicked = vbRetry
  19.         ElseIf vbDefaultButton3 = intDefaultButton Then
  20.             intClicked = vbIgnore
  21.         End If
  22.     End If
  23.    
  24.     Select Case intClicked
  25.     Case vbAbort
  26.         '加上 [中止] 對應處理程序
  27.     Case vbRetry
  28.         '加上 [重試] 對應處理程序
  29.     Case vbIgnore
  30.         ' ...
  31.     Case Else
  32.         ' ...
  33.     End Select
  34.         
  35.     Set myWsh = Nothing                 '釋放物件
  36. End Sub
複製代碼

作者: lichang    時間: 2015-7-26 15:29

大大,請問一下,為什麼我使用您的代碼直接複製,他會跟我說
Dim myWsh As IWshRuntimeLibrary.WshShell
"使用者自訂型態尚未定義"
作者: azrael19    時間: 2015-7-26 15:48

回復 3# lichang
你給的範例程式中註解有說明('Windows Script Host Object Model設定引用項目)
在[工具] [設定引用項目] 要 勾選 Windows Script Host Object Model,如下圖:
[attach]21494[/attach]
作者: lichang    時間: 2015-7-26 15:53

回復 4# azrael19

喔......我了解了,對不起,我疏忽了!!謝謝你的解答!!




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