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