使用VBA在Outlook中打开新邮件



我是VBA的新手,有些代码有问题。

我需要创建一个宏,打开一个新的Outlook窗口,复制筛选后的单元格并将其粘贴到电子邮件正文上。你知道怎么做吗?

您似乎需要从Excel自动化Outlook。若要启动Outlook Automation会话,可以使用早期绑定或后期绑定。后期绑定使用Visual BasicGetObject函数或CreateObject函数来初始化Outlook。例如,以下代码将对象变量设置为Outlook应用程序对象,该对象是Outlook对象模型中的最高级别对象。所有Automation代码必须首先定义Outlook应用程序对象,才能访问任何其他Outlook对象。

Dim objOL as Object 
Set objOL = CreateObject("Outlook.Application")

若要使用早期绑定,首先需要设置对Outlook对象库的引用。使用Visual Basic for Applications(VBA(Tools菜单上的Reference命令可以设置对Microsoft Outlook xx.x Object Library的引用,其中xx.x表示正在使用的Outlook版本。然后,您可以使用以下语法启动Outlook会话。

Dim objOL as Outlook.Application 
Set objOL = New Outlook.Application

大多数编程解决方案都与存储在Outlook中的数据进行交互。Outlook将其所有信息作为项目存储在文件夹中。文件夹包含在一个或多个存储中。将对象变量设置为Outlook应用程序对象后,通常会将NameSpace对象设置为引用MAPI,如下例所示。

Set objOL = New Outlook.Application 
Set objNS = objOL.GetNameSpace("MAPI") 
Set objFolder = objNS.GetDefaultFolder(olFolderContacts)

将对象变量设置为引用包含要处理的项目的文件夹后,就可以使用适当的代码来完成任务,如以下示例所示。

Sub CreateNewDefaultOutlookTask() 
Dim objOLApp As Outlook.Application 
Dim NewTask As Outlook.TaskItem 
' Set the Application object 
Set objOLApp = New Outlook.Application 
' You can only use CreateItem for default items 
Set NewTask = objOLApp.CreateItem(olTaskItem) 
' Display the new task form so the user can fill it out 
NewTask.Display 
End Sub

Outlook对象模型提供了三种处理项目主体的主要方法:

  1. 身体
  2. HTMLBody
  3. Word编辑器。Inspector类的WordEditor属性返回表示消息正文的Word文档的实例

有关详细信息,请参阅第17章:使用项目主体。

最新更新