我正在尝试在总机加载时从Access VBA打开Outlook应用程序。我打开了任务管理器,可以看到一个Outlook实例出现了大约5秒钟,然后关闭了,但是我无法打开资源管理器窗口。我一直在尝试将VBA中的代码组合在一起:确定现有的Outlook实例是否处于打开状态以及其他来源,但是它无法正常工作。有任何想法吗?
而且我想坚持使用后期绑定,因此,如果有人使用XP打开,则不必担心对象库。
Function OpenEmail()
Dim olApp As Object ' Outlook.Application
Dim olFolderInbox As Object
Dim objExplorer As Object
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
If olApp Is Nothing Then
MsgBox "Outlook is not Open"
Set olApp = CreateObject("Outlook.Application")
End If
Set objExplorer = CreateObject("Outlook.MAPIFolder")
Set objExplorer = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
objExplorer.Activate
'Set olApp = Nothing
End Function
Outlook是唯一的MS Office应用程序,GetObject
它具有与Windows XP相同的功能CreateObject
。与其他MS Office应用程序不同,CreateObject
它不会创建Outlook的多个实例。
也是olFolderInbox
前景不变。您将必须在ACCESS中定义它。
试试这个
Const olFolderInbox As Long = 6
Sub Sample()
Dim olApp As Object
Dim objNS As Object
Dim olFolder As Object
Set olApp = CreateObject("Outlook.Application")
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
With olFolder
'~~> Do what you want
End With
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句