如何从另一个程序自动 Outlook 2002

文章翻译 文章翻译
文章编号: 291120 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
为这篇文章的一个 Microsoft Outlook 97 版本,请参阅 168095
为这篇文章的一个 Microsoft Outlook 98 版本,请参阅 181202
为这篇文章的一个 Microsoft Outlook 2000 版本,请参阅 201096
展开全部 | 关闭全部

本文内容

概要

本文提供的编程 Outlook 从另一个程序中使用自动化的概述。

更多信息

Microsoft 提供的编程示例只,用于说明不附带任何明示或暗示保证,其中包括但不是限于对适销性和/或针对特定用途的适用性的暗示的担保。本文假定您熟悉所演示的编程语言和工具用于创建和调试过程。Microsoft 支持专业人员可以帮助解释某个特定过程的功能,但他们不会修改这些示例以提供额外的功能或构建过程来满足您特定需要。
如果有限编程体验您可能需要联系 Microsoft 认证合作伙伴或 Microsoft 咨询服务。有关更多的信息请访问以下 Microsoft 网站:

Microsoft 认证合作伙伴-https://partner.microsoft.com/global/30000104

Microsoft 咨询服务-http://support.microsoft.com/gp/advisoryservice

有关可用的支持选项和有关如何与 Microsoft 联系的详细信息,请访问下面的 Microsoft 网站: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS自动化允许一个程序控制另一程序发出命令,或者以编程方式检索信息。您可以使用 Word、 Excel、 Microsoft Visual Basic,或任意其他支持自动化的程序中本文中的代码示例。

尽早与晚期绑定

使用"早期"或"最晚"的绑定,可以开始自动化会话。后期绑定使用 GetObjectCreateObject 函数来初始化 Outlook。例如对于下面的代码将设置为 Outlook 为程序是在 Outlook 对象模型中最高的级别对象的对象。所有自动化代码必须首先都定义 Outlook.Application 对象,若要访问的任何其他 Outlook 对象,请在下面。
Dim objOL as Object
Set objOL = CreateObject("Outlook.Application")
				
若要用于早期绑定,您首先需要引用可用的 Outlook 对象库。为此从 Visual Basic (VB) 或 Visual Basic 应用程序,请按照下列步骤操作:
  1. 在 Visual Basic 中为应用程序编辑器 工具 菜单上单击 引用。或者如果您在 项目 菜单上使用的 Microsoft Visual Basic,,单击 引用
  2. 单击以选中 Microsoft Outlook 10.0 对象库 复选框,然后单击 确定
对象库文件 Msoutl.olb,默认情况下安装到是 Files\Microsoft Office\Office10 文件夹。一旦您引用 Outlook 对象库,您可以启动 Outlook 会话中使用以下语法:
Set ol = New Outlook.Application
				
使用早期绑定有两个重要的优点。第一次,使用早期绑定通常代码运行速度比使用后期绑定 (CreateObject/getobject) 的代码更快。第二个,因为引用 Outlook 对象库,您可以获取编程帮助使用对象浏览器的联机 Outlook,并帮助系统。

Outlook 对象模型

Outlook 对象模型允许您以对存储在 Outlook 文件夹中的数据进行操作。其他功能还允许您来处理 Outlook 栏、 使用在 $ 文件夹中选定的项、 操作项目级和应用程序级窗口和修改视图。加事件发生在 Outlook,从而允许您创建一个事件驱动的解决方案中的很多事情可以响应您的代码。

但是,您将发现与 Word 和 Excel,相比,可用于控制 Outlook 本身是有限的功能。Outlook 的许多功能不是公开的或通过 Outlook 对象模型可自定义。例如对于您不能使用对象模型来更改在 工具 菜单上的 选项 设置的大多数。

: 为有关对象模型的限制可能的解决方法,您可以使用提供的 Microsoft Office CommandBars 对象执行大多数命令分配给工具栏按钮或菜单命令。例如对于可以使用 CommandBars 对象运行在 工具 菜单的显示 新呼叫 对话框的 拨号 子菜单上的 新呼叫 命令。

大多数编程解决方案需要与存储在 Outlook 中的数据进行交互。outlook 将存储其信息的所有邮件应用程序编程接口 (MAPI) 文件夹中。因此,一个对象变量设置为 Outlook.Application 后,您通常会到 MAPI 设置 命名空间 对象:
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
				
一旦您设置了该 命名空间 对象您就可以设置为的 MAPI 命名空间中的某个文件夹的下一个对象。一个常见的方法就是通过指定 Outlook 默认文件夹是在同一个文件夹级别为接收传入的电子邮件的收件箱文件夹。下面的代码将设置为默认的联系人文件夹的 objFolder 对象:
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
Set objFolder = olns.GetDefaultFolder(olFolderContacts)
				
有关引用其他类型的文件夹的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
290804OL2002: 编程示例引用的项目和文件夹
一旦您以编程方式在包含您要使用或创建的项文件夹中,您可以使用适当的代码来完成您的编程任务。请参阅下文的一些常见的编程示例的示例。

除了从另一个应用程序访问 Outlook 数据,您也可以有意识到在 Outlook 中发生某些事件时应用程序。当用户在文件夹中选择不同的项目或显示一个 Outlook 提醒时向一个文件夹中添加项时,将是事件的示例。有关可用事件一个完成列表请参阅 Microsoft Outlook Visual Basic 参考 (Vbaol10.chm)。有关获取帮助文件,请参阅本文参考部分。

关于集成在应用程序中的 Outlook 事件的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
291119OL2002: 在其他程序中使用 Outlook 事件

用于常见编程任务的示例代码

示例: 创建新的默认任务项

Sub CreateNewDefaultOutlookTask()

   Dim ol As Outlook.Application
   Dim NewTask As Outlook.TaskItem

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Create a new standard task.
   Set NewTask = ol.CreateItem(olTaskItem)

   ' Display the new task form so the user can fill it out.
   NewTask.Display

End Sub
				

示例: 创建使用自定义窗体的新联系人

Sub CreateNewContactFromCustomForm()

   Dim ol As Outlook.Application
   Dim olns As Outlook.NameSpace
   Dim objFolder As Outlook.MAPIFolder
   Dim AllContacts As Outlook.Items
   Dim NewContact As Outlook.ContactItem

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Set the Namespace object.
   Set olns = ol.GetNamespace("MAPI")

   ' Set the default Contacts folder.
   Set objFolder = olns.GetDefaultFolder(olFolderContacts)

   ' Set objAllContacts equal to the collection of all contacts.
   Set AllContacts = objFolder.Items

   ' Add a new contact to the AllContacts collection using the
   ' "IPM.Contact.MyForm" form.
   Set NewContact = AllContacts.Add("IPM.Contact.MyForm")

   ' Display the new contact form.
   NewContact.Display

End Sub
				

示例: 循环通过所有默认联系人

Sub GetOutlookContacts()

   Dim ol As Object
   Dim olns As Object
   Dim objFolder As Object
   Dim objAllContacts As Object
   Dim Contact As Object

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Set the Namespace object.
   Set olns = ol.GetNamespace("MAPI")

   ' Set the default Contacts folder.
   Set objFolder = olns.GetDefaultFolder(olFolderContacts)

   ' Set objAllContacts equal to the collection of all contacts.
   Set objAllContacts = objFolder.Items

   ' Loop through each contact.
   For Each Contact In objAllContacts

      ' Display the Fullname field for the contact.
      MsgBox Contact.FullName

   Next

End Sub
				

参考

有关可用资源和 Microsoft Outlook 解决方案有关的常见问题的答案的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
287530OL2002: 有关自定义窗体和 Outlook 解决方案的问题

属性

文章编号: 291120 - 最后修改: 2013年10月23日 - 修订: 3.5
这篇文章中的信息适用于:
  • Microsoft Outlook 2002 标准版
关键字:?
kbnosurvey kbarchive kbmt kbautomation kbhowto KB291120 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 291120
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com