В модуле 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 Максимальная, 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