AppActivate Excel-vba: Excel блимає на панелі завдань і не активується


0

У модулі 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 64 Ultimate, 64-розрядна.


Вам потрібно відредагувати своє запитання та вказати, яку помилку ви отримали.
Рамхаунд

1
Що станеться, якщо ви спробуйте "AppActivate" Microsoft Outlook "" замість цього?
duDE

@duDE, чому він хотів би активувати Access, якщо він працює в Excel?
LPChip

Цей рядок не викликає помилок, але значок excel блимає на панелі завдань і не активується.
Ріккардо Ла Марка

@LPChip Вибачте, я думав, що ОП хоче активувати Outlook. Його питання не дуже детальне :)
duDE

Відповіді:


0

Вирішено!

Замість:

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.