从excel vba在outlook中创建任务

时间:2018-06-01 21:17:23

标签: excel vba outlook task outlook-vba

我有副本&粘贴此代码并在Google的论坛中对其进行修改,以根据我表单上的内容在Outlook中创建任务

With CreateObject("Outlook.Application").CreateItem(3)
    .Subject = UserForm1.TextBox1.Value & " " & UserForm1.ComboBox1.Value
    .StartDate = UserForm1.MonthView1.Value
    .DueDate = UserForm1.MonthView1.Value
    .ReminderTime = UserForm1.MonthView1.Value - 1
    .Body = UserForm1.TextBox1.Value & " " & UserForm1.ComboBox1.Value
    .Save
End With

我调试时代码没有崩溃,我的程序运行得很好。方法对吗?

我是否必须在某处调用CreateObject,或者我可以从With子句创建任务吗?

1 个答案:

答案 0 :(得分:0)

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

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

要使用早期绑定,首先需要设置对Outlook对象库的引用。然后,您可以使用以下语法来启动Outlook会话。

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

大多数编程解决方案都与Outlook中存储的数据进行交互。 Outlook将其所有信息存储在邮件应用程序编程接口(MAPI)文件夹中。将对象变量设置为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
  ' you can replace the .Display method with your own code for setting up the task item
End Sub

P.S。不要忘记添加Outlook COM引用。在“工具”菜单上,单击“引用”。在“引用”框中,单击以选中“Microsoft Outlook对象库”,然后单击“确定”。

注意:如果Microsoft Outlook对象库未显示在“可用引用”框中,请浏览硬盘以查找文件Msoutl * .olb。如果找不到此文件,则必须先运行Microsoft Outlook安装程序进行安装,然后再继续操作。