本帖最后由 爱疯 于 2012-11-22 17:22 编辑
添加引用Microsoft Outlook 11.0 Object Library
我是2007版本的office,想实现以下功能:
"以下代码将当前文件夹设置为收件箱并显示该文件夹中的第二个邮件"
有如下代码一:以下代码可以直接在OUTLOOK内执行,
Set myOlApp = Outlook.Application Set myNamespace = myOlApp.GetNamespace("MAPI") Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox) myFolder.Display Set myItem = myFolder.Items(2) myItem.Display
有如下代码二:由上面代码改动(但不能执行,黄色代码提示不能调用,请教各位了...)
Sub rr() Dim myOlApp As Object Dim myNameSpace As Object Dim myFolder As Object
Set myOlApp = CreateObject("Outlook.Application") Set myNameSpace = myOlApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox) myFolder.Display Set myItem = myFolder.Items(2) myItem.Display
End Sub
我怀疑是我用的调用的方法Set myOlApp = CreateObject("Outlook.Application"),不对,所以想请教如何能在"工具"-"引用"-引用Microsoft Outlook 11.0 Object Library
谢谢各位了...
[此贴子已经被作者于2009-10-12 18:21:03编辑过]
代码写在excel的VBA里,修改一下你的代码,详细见注释: 这个是后期绑定对象库的写法,是不需要前期绑定(工具-引用Microsoft Outlook 11.0 Object Library)的,Excel2003和2007均可以运行。 我从来都不喜欢前期绑定[em01],关于更详细的绑定说明,请参阅http://www.excelpx.com/forum.php?mod=viewthread&tid=94678&extra=&page=1#94678
以下代码在excel中打开outlook收件箱的第2封邮件(按主题排序):
Sub rr() Dim myOlApp As Object Dim myNameSpace As Object Dim myFolder As Object Dim myItem As Object
'如果outlook已经打开,直接取outlook实例,如果没有打开,则创建一个outlook实例 '(我不喜欢多打开一个outlook窗口)[em01] On Error Resume Next Set myOlApp = GetObject(, "Outlook.Application") If Err.Number = 429 Then Set myOlApp = CreateObject("Outlook.Application") End If
Set myNameSpace = myOlApp.GetNamespace("MAPI") 'olFolderInbox是outlook的一个内置对象模型,在后期绑定对象库的时候不能被识别,因此不能常量“olFolderInbox”表示 '要用值来表示,olFolderInbox的值为6 Set myFolder = myNameSpace.GetDefaultFolder(6) Set myItem = myFolder.Items(2) myItem.Display
End Sub
[此贴子已经被作者于2009-10-13 4:51:56编辑过]
|