将新创建的Outlook约会窗口置于最前面

时间:2019-04-27 11:30:20

标签: excel vba outlook

是否可以将新创建​​的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 个答案:

答案 0 :(得分:2)

尝试致电Inspector.Activate