Outlook 2007 VBA - 仅在特定Outlook帐户中应用操作

时间:2012-02-18 22:11:27

标签: outlook-2007 outlook-vba

我正在使用以下VBA项目将默认字符串应用于所有新电子邮件的“主题”字段的开头。但是 - 我只希望这个脚本在Outlook打开到特定帐户时运行(即我有2个Outlook用户帐户/ PST文件 - 个人和商业 - 并且只希望在我工作时将主题字符串添加到电子邮件中商业帐户) 手指交叉 - 谢谢你的帮助。柯克

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If MsgBox("Send with 'Myrtleford Festival" at start of subject?", vbYesNo, "Send as Festival mail") = vbYes Then
        If (Left(Trim(Item.Subject), 11)) <> "The " Then
    Item.Subject = "The Myrtleford Festival 2012/ " + Item.Subject
    End If
End If

End Sub

2 个答案:

答案 0 :(得分:0)

这是一种方法的基础。

这是因为我有多个帐户,但是,当我这样做时,顶级文件夹是非常不同的。下面的代码向立即窗口输出顶级文件夹的名称。在我目前的系统上,这将给出:

Personal Folders
Archive Folders
Test Folders

如果您的两个帐户有不同的顶级文件夹,则可以区分您的帐户。

如果您喜欢这种方法,但顶级文件夹是相同的,我有一个例程,可以在层次结构的任何深度搜索特定文件夹。即使主文件夹相同,我也假设某些子文件夹不同。

Sub AnswerA()

  Dim InxIFLCrnt As Integer
  Dim TopLvlFolderList As Folders

  Set TopLvlFolderList = _
          CreateObject("Outlook.Application").GetNamespace("MAPI").Folders

  For InxIFLCrnt = 1 To TopLvlFolderList.Count
    Debug.Print TopLvlFolderList(InxIFLCrnt).Name
  Next

End Sub

答案 1 :(得分:0)

好的,很酷。事实上,我偶然发现了一个完全万无一失的&amp;优雅的解决方在Outlook的信任中心&gt;宏安全性中,我选择了“警告所有宏”选项。现在当我打开Outlook到我的任何配置文件时,我会弹出一个询问我是否要启用/禁用宏的弹出窗口。由于VBA脚本是唯一运行的宏,我可以轻松过滤是否使用默认主题字符串。这将永远100%的工作(因为我看不出有什么理由我将使用另一个宏/ VBA脚本)