PDA

Показать полную графическую версию : закрыть окно InputBox по таймеру


DUNAEV78
12-04-2020, 20:44
Ребята здравствуйте попытался запустить таймер для того что бы закрыть InputBox но что то не получается что не так?

Function InputBox(Prompt As String, default As String, Optional Buttons, Optional Title, Optional ByVal SecondsToWait As Integer)
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
InputBox = wshShell.PopUp(Prompt, default, SecondsToWait, Title, Buttons) 'ошибка здесь
End Function
Sub zapusk()
a = InputBox("Тестирование", " ", vb, "Сообщение!", 2) 'здесь параметры должны быть соблюдены
End Sub

megaloman
12-04-2020, 21:29
В VBA InputBox - имя стандартной функции. ИМХО, не стОит его так использовать. Зачем еще как-то переопределять стандартную функцию.
В PopUp 4 аргумента: Popup(<Text>,<SecondsToWait>,<Title>,<Type>)
Sub zapusk()
With CreateObject("WScript.Shell")
a = .PopUp("Текст сообщения", 5, "Заголовок", 2)
End With
End Sub

DUNAEV78
12-04-2020, 21:58
megaloman » да но это же InputBox где же "default" строка куда заносится сообщение, у меня просто в проекте оно обязательно должна присутствовать, может как то можно обойти?

megaloman
12-04-2020, 22:10
DUNAEV78, Что такое "default" - это строка, которую ручками пользователь должен занести? В InputBox нет таймера.
Можно выкрутиться: вызвать PopUp с вопросом типа "Вы будете вводить свои данные?", кнопками да-нет и таймером. При выборе "да" вызвать InputBox, "нет" или таймер - вместо введённого текста использовать текст по умолчению.

DUNAEV78
12-04-2020, 22:12
а как вариант возможно ли у стандартного InputBox таймером через 2 сек нажать кнопку "отмена"?

у меня в проекте если в поле не введено ни одни данные, то InputBox, закрывается , я понимаю что просто так не закрыть а вот по кнопке отмена выйти из InputBox

Iska
13-04-2020, 11:01
а как вариант возможно ли у стандартного InputBox таймером через 2 сек нажать кнопку "отмена"? »
DUNAEV78, нет.

И:
The return value intButton denotes the number of the button that the user clicked. If the user does not click a button before nSecondsToWait seconds, intButton is set to -1.

Используйте UserForm.




© OSzone.net 2001-2012