在 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