AppActivate Excel-vba:Excel 在任务栏中闪烁并且无法激活

AppActivate Excel-vba:Excel 在任务栏中闪烁并且无法激活

在 Excel-vba 模块中:

Option Explicit
Sub Test()
    Dim Outlook As Object
    Set Outlook = CreateOutlook()
    Set Outlook = Nothing
End Sub
Function CreateOutlook() As Object
    Dim Outlook As Object
    On Error Resume Next
        Set Outlook = GetObject(, "Outlook.Application")
    On Error GoTo 0
    If Outlook Is Nothing Then Shell "Outlook"
    On Error Resume Next
        Do While Outlook Is Nothing
            Set Outlook = GetObject(, "Outlook.Application")
        Loop
    On Error GoTo 0
    Set Outlook = CreateObject("Outlook.Application")
    AppActivate Application.Caption 'This line doesn't cause an error but excel icon flashes in taskbar and doesn't activate.
    Set CreateOutlook = Outlook
    Set Outlook = Nothing
End Function

我有 Windows 7 Ultimate,64 位。

答案1

解决了!

代替:

AppActivate Application.Caption

这:

SendKeys "% i"

然后:

Option Explicit
Sub Test()
    Dim Outlook As Object
    Set Outlook = CreateOutlook()
    Set Outlook = Nothing
End Sub
Function CreateOutlook() As Object
    Dim Minimize As Boolean
    Dim Outlook As Object
    Minimize = False
    On Error Resume Next
        Set Outlook = GetObject(, "Outlook.Application")
    On Error GoTo 0
    If Outlook Is Nothing Then
        Shell "Outlook"
        Minimize = True
    End If
    On Error Resume Next
        Do While Outlook Is Nothing
            Set Outlook = GetObject(, "Outlook.Application")
        Loop
    On Error GoTo 0
    If Minimize Then SendKeys "% i"
    Set Outlook = Nothing
    Set CreateOutlook = CreateObject("Outlook.Application")
End Function

相关内容