Outlook VBA:将新的(未保存的)项目移至文件夹

问题描述:

我试图在用户保存时在特定商店中创建新的Outlook项目。通常,如果有多个帐户,则当您创建新项目时(例如,按Ctrl + Shift + K进行任务),将在活动帐户的默认文件夹中创建新项目。Outlook VBA:将新的(未保存的)项目移至文件夹

我试着拦截检查员为新项目并移动它,但它没有效果。这里是代码的要点(检查以避免非新项目被省略):

Dim WithEvents inspectors As Outlook.inspectors 

Private Sub Application_Startup() 
    Set inspectors = Application.inspectors 
End Sub 

Private Sub inspectors_NewInspector(ByVal Inspector As Inspector) 
    Dim item As Object 
    Set item = Inspector.CurrentItem 
    If item Is Nothing Then Exit Sub 
    If item.Class <> olTask Then Exit Sub 
    item.Move Application.GetNamespace("MAPI").GetDefaultFolder(olFolderTasks) 
End Sub 

不幸的是,Move方法没有效果。有任何想法吗?

您不能移动未保存的项目。你是如何创建该项目?

使用Items.Add方法在特定文件夹中添加项目(即创建项目)。如果您使用CreateItem方法,它将始终在该项目类型的默认文件夹中创建。

而不是尝试使用现有的功能来尝试和创建任务(我不知道是可能的还是简单的)我认为你最好创建一个宏来创建你想要的文件夹中的任务,然后将宏添加到工具栏按钮。或者您可以尝试先保存该项目,然后移动它。请注意您当前的代码将项目移动到默认的任务文件夹。

+0

我的目标是勾选在Outlook中创建任务的标准方法:主页>新建项目>任务或Ctrl + Shift + K。 Folders.Add创建一个新文件夹;我想在用户填写数据并点击保存后在特定文件夹中创建一个新的任务项目。 – 2011-11-22 14:44:07