Есть ли способ вывести недавно созданное окно встречи Outlook вперед, чтобы использовать функции Sendkeys?Я создаю новую встречу из Excel, копирую данные из рабочей книги в тело и изменяю встречу в Skype, отправляя ключи.Однако иногда встреча открывается за Excel, и операция SendKeys не работает.
Я пытался использовать AppActivate
, но я думаю, что я поступаю неправильно, поскольку отладчик говорит Invalid procedure call or argument
.Также приветствуются альтернативы.
Я также пробовал, но он не работал все время, и иногда окно назначения все равно открывалось в фоновом режиме:
Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
.....
Dim olAppt As Outlook.AppointmentItem
Dim HWNDSrc As Long
.....
Set olAppt = olApp.CreateItem(olAppointmentItem)
SetForegroundWindow HWNDSrc
.....
Вот мой полный код:
Sub CreateNewOutlookAppointment()
Dim olApp As Outlook.Application
Dim olAppt As Outlook.AppointmentItem
Set olAppt = Nothing
Set olApp = Outlook.Application
Set olAppt = olApp.CreateItem(olAppointmentItem)
AppActivate olApp
With olAppt
.Subject = "Bid review" & ", " & ThisWorkbook.Sheets("Other Data").Range("P23").Value
ThisWorkbook.Sheets("Templates").Range("M202:M223").Copy
.Display
.GetInspector.WordEditor.Windows(1).Selection.PasteAndFormat wdPASTERTF
End With
Application.SendKeys ("%HOM")
Set olAppt = Nothing
End Sub