MyTetra Share
Делитесь знаниями!
Скрытие сообщения по времени
Время создания: 30.07.2020 21:17
Текстовые метки: k_Диалоги, InputBox, vba, диалоги, MsgBox
Раздел: !Закладки - VBA - MsgBox




Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long

 

Sub MsgBoxAutoClose(Optional ByRef stext As String, _

                    Optional ByRef sTitle As String, _

                    Optional ByRef lSec As Long)

    If lSec = 0 Then lSec = 3

    If stext = "" Then _

       stext = " через " & lSec & " сек"

    If sTitle = "" Then sTitle = "Окно закроется само ... "

  

    MessageBoxTimeOut 0, stext, sTitle, _

                      vbInformation + vbOKOnly, 0&, lSec * 1000

End Sub


Sub ПредупреждениеОКонфиденциальнойИнформацииОтключить()

    ' On Error Resume Next

  If ActiveWorkbook.RemovePersonalInformation Then

    ActiveWorkbook.RemovePersonalInformation = False

    Call MsgBoxAutoClose("Отключено", "Предупреждение О Конфиденциальной Информации", 4)

  End If

End Sub



Лучше использовать соответствующий метод объекта WScript.Shell.


Sub test()

    Dim WshShell As Object

    Set WshShell = CreateObject("WScript.Shell")

    WshShell.Popup "Текст сообщения", 2, "Текст заголовка", vbExclamation  ' ждем две секунды

End Sub


А я обычно WshShell.run "msg * /Time:5 Это текст сообщения" пользовал. Правда в VBS. Даже если пользователь не залогинен,  то будет сообщение  :-)


Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования