Принесите недавно созданное окно встречи Outlook перед - PullRequest
0 голосов
/ 27 апреля 2019

Есть ли способ вывести недавно созданное окно встречи 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

1 Ответ

2 голосов
/ 27 апреля 2019

Попробуйте позвонить Inspector.Activate.

...