我有副本&粘贴此代码并在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子句创建任务吗?
答案 0 :(得分:0)
要启动Outlook自动化会话,您可以使用早期绑定或后期绑定。后期绑定使用GetObject
或CreateObject
函数来初始化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安装程序进行安装,然后再继续操作。