Что такое минимальный диалог VBA "Я занят"? - PullRequest
3 голосов
/ 10 мая 2011

У меня есть макрос в PowerPoint 2010, который связывает аудиофайлы с каждым слайдом. Однако, это занимает некоторое время, и хотя в строке состояния «связывание файлов» появляется прогресс, я бы хотел чего-то большего.

Предостережение: я действительно не знаком с VBA или ее API.

Что я хочу:

ImBusyDialog("Linking Files...").Open()

// Call Sub that does real work.

ImBusyDialog.Close();

и все. Если в IE есть что-то встроенное, например, спиннер загрузки страницы, то отлично, если нет, я доволен простым окном сообщения. Важно то, что он не требует вмешательства пользователя.

1 Ответ

4 голосов
/ 10 мая 2011

Используйте ту же логику, что и для установки строки состояния.Там, где вы устанавливаете текст строки состояния, вы просто добавляете соответствующий код для вызова диалогового окна состояния.

У О'Рейли есть довольно подробное описание того, как создать диалоговое окно строки состояния.коробка с индикатором и все.Вероятно, это немного излишне для того, что вы хотите, но больше посмотреть, что возможно в VBA: http://oreilly.com/pub/h/2607

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

Важный код из предыдущего поста:

Sub ShowForm_DoSomething()r
Load frmStatus
     frmStatus.Label1.Caption = "Starting"
     frmStatus.Show
     frmStatus.Repaint
'Load the form and set text
     frmStatus.Label1.Caption = "Doing something"
     frmStatus.Repaint
'code here to perform an action
      frmStatus.Label1.Caption = "Doing something else"
     frmStatus.Repaint
'code here to perform an action
      frmStatus.Label1.Caption = "Finished"
     frmStatus.Repaint
     Application.Wait (Now + TimeValue("0:00:01"))
     frmStatus.Hide
     Unload frmStatus 'hide and unload the form
End Sub

Решение O'Reilly, безусловно, представляет собой сложное решение, но оно кажется «самым красивым» и, вероятно, будет очень удобным для пользователя.Похоже, что решение SO гораздо проще реализовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...