1

У меня есть макрос Excel, который имеет дело с тысячами строк в нескольких таблицах и выполняет некоторые операции копирования / вставки / анализа / объединения .... это займет почти 10 минут, чтобы запустить его полностью.

В конце я добавил MsgBox "Job Done" , дело в том, что всплывающее окно появляется, только если Excel является активным окном. Если я, например, в Outlook, всплывающее окно не будет всплывать, что сильно ограничивает его преимущество.

Можно ли что-то настроить, чтобы оно всплывало?

2 ответа2

1

Как насчет

vbSystemModal   4096    System modal; all applications are suspended until the user responds to the message box.

Смотрите функцию MsgBox

0

Думать шире. Есть и другие способы привлечь ваше внимание, кроме Msgbox

Всплывающее окно командной строки, которое находится сверху

Sub Sample()
  RetVal = Shell("CMD /k echo Hello World", vbNormalFocus)
End Sub

Примечание: это не останавливает ваш макрос VBA. Это работает как отдельный процесс

Воспроизвести звуковой сигнал

Sub Sample()
  Beep
End Sub

Примечание: звуковой сигнал по умолчанию должен быть связан со звуком, чтобы это работало

Откройте блокнот, чтобы привлечь внимание

Sub Sample()      
  Set WScript = CreateObject("WScript.Shell")
  WScript.Run "%windir%\notepad", 1
End Sub

Читайте больше на отличной статье Программирование Windows Script Host. Поведение фокуса можно изменить с помощью intWindowStyle

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .