Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 16721|回复: 7

[已解决]如何添加引用Microsoft Outlook 11.0 Object Library

[复制链接]
发表于 2009-10-12 18:12 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 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编辑过]
最佳答案
2009-10-13 02:40

代码写在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编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2009-10-12 20:11 | 显示全部楼层

喵喵,兰版,戏子,小妖。。。。我想你们啦

回复

使用道具 举报

发表于 2009-10-12 20:42 | 显示全部楼层
回复

使用道具 举报

发表于 2009-10-12 21:11 | 显示全部楼层

占位学习一下。

回复

使用道具 举报

发表于 2009-10-13 02:40 | 显示全部楼层    本楼为最佳答案   

代码写在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编辑过]
回复

使用道具 举报

发表于 2009-10-13 04:01 | 显示全部楼层

学习[em02][em02]
回复

使用道具 举报

发表于 2009-11-11 20:09 | 显示全部楼层

学习一下

回复

使用道具 举报

发表于 2012-11-22 15:49 | 显示全部楼层
谢谢,学习了,就是需要这个。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 08:01 , Processed in 0.338722 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表