本帖最后由 爱疯 于 2012-7-17 10:32 编辑

为了自动化Outlook,使Excel的VBA能调用Outlook对象,我们必须先访问Outlook的对象模型。也就是说,在Excel里操纵Outlook的对象,你必须首先能够让Excel“看到”它们。 通常有两种方法可以公开一个对象模型到Excel应用程序,称为前期绑定和后期绑定。

绑定的意思就是把客户端的对象模型开放给主程序,把他们强制性的联系在一起。这里我们就是指把Outlook对象模型开放给ExcelVBA主程序。

前期绑定

前期绑定,意思就是在你的程序运行前就已经进行了绑定,绑定的方法是在VBE编辑器里点击工具-引用,选上Microsoft Outlook 11.0 Object Library。(Outlook的版本不同,数字会有变化,我用的是2003,版本是11.0)

以下一段代码是前期绑定后,打开收件箱第2封邮件的代码(按主题排序):

Sub OpenMail_1()

Dim myOlApp As New Outlook.Application

Dim myNameSpace As Object

Dim myFolder As Object

Dim myItem As Object

Set myNameSpace = myOlApp.GetNamespace("MAPI")

Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)

Set myItem = myFolder.Items(2)

myItem.Display

End Sub后期绑定

后期绑定就是在程序运行的时候才进行绑定,不需要事先引用Microsoft Outlook 11.0 Object Library,而是需要运用GetObject和CreateObject函数。

以下代码同样是实现:打开收件箱第2封邮件(按主题排序):

Sub OpenMail_2()

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 IfSet myNameSpace = myOlApp.GetNamespace("MAPI")

'后期绑定对象库的时候,GetDefaultFolder类型不能常量“olFolderInbox”表示

'要用参考值来表示,olFolderInbox的参考值为6

Set myFolder = myNameSpace.GetDefaultFolder(6)

Set myItem = myFolder.Items(2)

myItem.DisplayEnd Sub这里有一个小小的不同之处:

前期绑定用的是 GetDefaultFolder(olFolderInbox)

后期绑定用的是GetDefaultFolder(6)

olFolderInbox是Outlook的一个内置对象模型,在后期绑定对象库的时候不会开放给Excel,不能被ExcelVBA识别,因此不能用常量的形式(olFolderInbox)表示,只能用参考值(6)来表示。

从以上看来,前期绑定的代码更容易进行理解和调试,但是,当我们要共享文档的时候,就会出现问题了,因为不能保证每个人用的Outlook版本都和你的一样,如果不一样的话,对象库也会不一样,这时用前期绑定的程序就会报错。而用后期绑定的话,可以不用理会别人的版本是什么,都可以运行。因此我会更喜欢用后期绑定[em01]

[此贴子已经被作者于2009-10-13 5:01:50编辑过]

vba 添加outlook 签名_ExcelVBA调用Outlook对象相关推荐

  1. vba 添加outlook 签名_调用Outlook发送邮件-附带签名

    时 间:2018-10-25 13:06:22 作 者:摘 要:怎么样在调用Outlook的时候附带上签名呢? 正 文: 由于签名一般都有特殊格式,所以在access中直接加入文本签名是不可行的,那么 ...

  2. vba 添加outlook 签名_如何在Outlook中添加默认签名

    当年话下 我的解决方案是首先显示一条空消息(使用默认签名!)并将目标strHTMLBody插入现有消息中HTMLBody.如果像PowerUser所述,在编辑HTMLBody时签名被删除,您可以考虑在 ...

  3. vba mysql 自动化错误_excel-vba – 错误-2147417848自动化错误调用的对象已与其客户端断开连接...

    我正在努力清理3张excel表中的一些表格. 我的代码在Excel 2007中运行良好,因为我切换到excel 2010我开始得到此运行时错误自动化错误调用的对象已与其客户端断开连接,错误号为-214 ...

  4. Python 调用 Outlook 发送邮件

    微软 Office 提供基于 COM 接口的编程.Python 通过 pywin32 可以方便地调用各组件.如果下载和安装 pywin32 有困难,可以到 Sourceforge 的镜像网摘查找合适的 ...

  5. c语言outl函数,如何调用outlook

    经有好几个人询问如何在Excel中使用VBA调用Outlook或者其它Office应用程序,其实做法很简单,关键还是对于目标应用程序的对象模型的掌握和使用,这里有一个以前做过的例子,是在Excel中做 ...

  6. Python: Git Log自动生成Release Notes,并调用Outlook发送至邮件

    Python: Git Log自动生成Release Notes,并调用Outlook发送至邮件 主要功能 先上图 生成ReleaseNotes 邮件: 生成ReleaseNotes Text: 关键 ...

  7. outlook 签名_快速提示:轻松在Outlook 2007中的签名之间切换

    outlook 签名 There are many people who live in Microsoft Outlook a good percentage of the day. You mig ...

  8. outlook 签名_如何在Outlook 2013中创建新签名

    outlook 签名 If you sign your emails the same way most of the time, you can create signatures in Outlo ...

  9. python用outlook自动发邮件_python调用outlook发送exchange邮件(含附件)

    最近在解决一个问题,就是生成每日数据的报表,然后利用邮件群发给各位同事.由于主要工作不在这,为了节省时间,所以选择了使用python语言. 选择发送邮件时,有人可能会说直接使用smtp库不就行吗?为啥 ...

最新文章

  1. Nature子刊:改进宏基因组的分箱和组装的新方法
  2. 我进公司当Android开发实习生时,初中最差的同学成了我的领导
  3. MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
  4. 2021-9-下旬 数据结构-线性表-动态数组-java代码实现
  5. 华为平板能运行python吗_我是如何使用华为平板的
  6. 费用流 ZOJ 3933 Team Formation
  7. 『数据库』数据库笔记
  8. 吴恩达作业8:三层神经网络实现手势数字的识别(基于tensorflow)
  9. Bootstrap 折叠插件Collapse 选项
  10. 在asp.net2.0中使用存储过程
  11. linux ubuntu 查看历史命令
  12. 实用———springmvc接收参数校验
  13. IDEA代码格式化会快捷键Ctrl+Alt+L失效
  14. 数据分析师的薪资怎么样?
  15. 北京链家买二手房的经历与感受
  16. 消息中间件(消息队列)介绍
  17. MobaXterm连接到Linux虚拟机教程
  18. excel切片器_Excel有一对极品组合工具,能快速实现数据多维动态透视
  19. 7.scala初识 柯里化、隐式参数、隐式转换、视图边界、上界、下界、协变、逆变
  20. 文献(8): 单细胞和空间分析揭示FAP+成纤维细胞和SPP1+巨噬细胞在结直肠癌中的相互作用

热门文章

  1. 《c语言程序设计》网课答案,合理的服务半径是指居住区内达到居住区级公共服务设施的最大步行距离,一般为 800~1000 m,在地形起伏的地区还应适当减少。...
  2. 7-6 鸡群的怜悯 (10分)
  3. excel日期日月年转换为年月日
  4. oracle11gr2配置监听,oracle-11g-R2监听文件配置
  5. amd锐龙笔记本cpu怎么样_如果你要购买笔记本的话!千万不要现在购买AMD锐龙笔记本!因为...
  6. 前端低代码平台腾讯云微搭使用文档
  7. 2021级高级语言期末考复盘
  8. 基于JAVA在线点餐外卖系统设计与实现 开题报告
  9. 深度学习做股票预测靠谱吗?
  10. windows遥测_Windows 7的2019年7月安全补丁包括遥测