Outlook 2010 VBA 脚本部署

Outlook 2010 VBA script deployment

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

我的脚本已经可以运行了,但我的问题在于所述脚本的分发。我们无法直接访问这些人的计算机,所以我们需要的是一种将其打包到下载中的方法,让他们从 link 电子邮件中 ​​运行 一次,然后忘记它.这些用户中的大多数几乎没有计算机知识。理想情况下,我不希望此脚本在一次执行后保留在 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

非常感谢!

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