Outlook 2010 VBA脚本部署

问题描述:

我为Outlook 2010编写了一个VBA脚本。此脚本的目的是从用户的任务和联系人中清除一些元素。这需要在迁移到新的客户端管理解决方案后完成。由于Exchange连接到新解决方案,因此某些项目会翻倍,因此我们需要从Outlook中删除项目。理想情况下,这将在Exchange服务器上完成,但我们无法直接访问它...Outlook 2010 VBA脚本部署

我的脚本已经工作,但我的问题在于所述脚本的分布。我们没有直接访问这些人的电脑,所以我们需要的是一种将它打包下载的方式,让他们从电子邮件中的链接运行一次,然后忘掉它。这些用户中的大多数具有大约零电脑知识。理想情况下,我不希望这个脚本在一次执行后保留在Outlook中。

我搜索了一个解决方案,但什么也没发现......

这里是我的脚本是否有帮助。另外,我不是一个好的程序员......所以如果有更好的方法来做到这一点,不要犹豫,告诉我。

Private Sub CleanUp() 
Dim TaskFolder As Folder 
Set TaskFolder = Session.GetDefaultFolder(olFolderTasks) 
Dim Task As TaskItem 
Dim objProperty As Outlook.UserProperty 
Dim uProperty As String 
Dim collTasks As New Collection 

Dim ContactFolder As Folder 
Set ContactFolder = Session.GetDefaultFolder(olFolderContacts) 
Dim Contact As ContactItem 
Dim objPropertyCLS As Outlook.UserProperty 
Dim uPropertyCLS As String 
Dim collContacts As New Collection 

uProperty = "crmxml" 
uPropertyCLS = "crmLinkState" 

For Each Task In TaskFolder.Items 
    Set objProperty = Task.UserProperties.Find(uProperty, Outlook.OlUserPropertyType.olText) 
    If objProperty Is Nothing Then 
     Debug.Print "objProperty is Nothing" 
    ElseIf InStr(objProperty, "phonecall") > 0 Then 
      collTasks.Add Task 
    ElseIf InStr(objProperty, "letter") > 0 Then 
     collTasks.Add Task 
    ElseIf InStr(objProperty, "fax") > 0 Then 
     collTasks.Add Task 
    End If 
Next 

For Each Contact In ContactFolder.Items 
    Set objPropertyCLS = Contact.UserProperties.Find(uPropertyCLS, Outlook.OlUserPropertyType.olNumber) 

    If objPropertyCLS Is Nothing Then 
     Debug.Print "objPropertyCLS is Nothing" 
    ElseIf Not objPropertyCLS Is Nothing Then 
     collContacts.Add Contact 
    End If 
Next 

For Each Task In collTasks 
    Task.Delete 
Next 

For Each Contact In collContacts 
    Contact.Delete 
Next 
End Sub 

非常感谢!

+0

*所以如果有更好的方法可以做到这一点,请不要犹豫,告诉我。* - 这就是[codereview.se]的用途,你有没有试过? –

VBA脚本不适用于在多台PC上部署它们。如果您需要在多台PC上运行您的代码,则必须改为开发一个加载项。用户可以像任何其他Windows程序一样轻松地安装插件。如果加载项不再需要,可以从Outlook的COM加载项对话框中卸载或禁用该加载项。请参阅Walkthrough: Creating Your First VSTO Add-In for Outlook快速入门。