Сфокусируйтесь на Excel после создания электронной почты с помощью VBA

У меня есть макрос VBA, который делает следующее:

  1. Создает отчет, сохраняет его в основной каталог. Закрывает отчет
  2. Создает различные письма, прикрепляет отчет к каждому (не отправляет письмо)
  3. Msgbox показывает, что процесс завершен

Дело в том, что, как только весь процесс будет завершен, я хочу, чтобы пользователь знал, что это сделано, но этот код не возвращает фокус, чтобы преуспеть (на что я надеялся, это проблема)

Windows(the_current_window).Activate Worksheets(currentQuoteSheet).Select 

Последнее созданное письмо – это то, что остается на экране. Msgbox не появляется, только если я нажму на значок excel в строке меню, который он делает. Таким образом, пользователи просто ждут завершения (когда у него есть, на самом деле :()

Любые идеи о том, как убедиться, что msgbox появляется после того, как последнее электронное письмо создано без необходимости нажатия на excel?

Пытаться

 sub doSomething() 'do something AppActivate "Microsoft Excel" End Sub 

Хотя это работает до некоторой степени, он не активирует MSGbox, чтобы можно было нажимать y / n на клавиатуре (вы можете с помощью мыши).

Это позволяет взаимодействовать с клавиатурой, если вы выполняете задачу повторно и не хотите захватывать вашу мышь. Протестировано Office 2013 (64 бит) (удалите PtrSafe, если вы 32 бит)

 Private Declare PtrSafe Function MessageBox _ Lib "User32" Alias "MessageBoxA" _ (ByVal hWnd As Long, _ ByVal lpText As String, _ ByVal lpCaption As String, _ ByVal wType As Long) _ As Long Sub Test 'Call showwindow(ActiveWorkbook.Name) AppActivate "Excel" 'I need this to retain the focus retval = MessageBox(&O0, "Do you want to process", "My Question", vbYesNo + vbSystemModal) End Sub 

Вы пробовали называть свою книгу по имени? Что-то вроде:

 Workbooks("EXCEL WORKBOOK NAME.XLS").Activate 
  • Ссылка на адрес электронной почты с другого листа
  • Электронная почта из Excel не отправит вложение
  • VBA Excel. Если ячейка в одном столбце содержит адрес электронной почты, а ячейка в другом столбце - «SOLD», отправьте электронное письмо
  • Вытягивать данные из конкретной ячейки для загрузки в виде текста в электронном письме
  • VBA Вставить ссылку в тело электронной почты без использования HTML-тела?
  • Использование Excel VBA для извлечения данных электронной почты из папки Outlook
  • Макросъемка через ячейки с аналогичным значением / продуктом и отправка этого диапазона электронной почты
  • Разделение строки адресов электронной почты на разные столбцы с использованием следующей доступной строки
  • Отправка электронной почты в Excel с помощью VBA, без Outlook, 64 бит
  • «Транспорт не удалось подключиться к серверу» при отправке почты из Excel через Office 365
  • Гиперссылка для запуска макроса в personal.xlsb
  • Давайте будем гением компьютера.