VBA Outlook加载项中的选项
我被要求实施一个解决方案,员工必须为新电子邮件指定一个安全级别(这些邮件由exchange服务器过滤)。我想做的是,当发送新电子邮件时,一个对话框会显示安全级别选项,即VBA Outlook加载项中的选项,vba,outlook,Vba,Outlook,我被要求实施一个解决方案,员工必须为新电子邮件指定一个安全级别(这些邮件由exchange服务器过滤)。我想做的是,当发送新电子邮件时,一个对话框会显示安全级别选项,即个人,未分类,分类等,然后附加到主题行的后面[SEC=variable]。目前,我有下面的代码,但这显然必须手动修改,我不希望员工必须这样做(他们不会这样做) 我们将非常感谢您为启动此对话框提供的任何帮助。我正在将Visual Studio 2010与Outlook 2010一起使用。根据建议,使用ItemSend事件显示一个用户
个人
,未分类
,分类
等,然后附加到主题行的后面[SEC=variable]
。目前,我有下面的代码,但这显然必须手动修改,我不希望员工必须这样做(他们不会这样做)
我们将非常感谢您为启动此对话框提供的任何帮助。我正在将Visual Studio 2010与Outlook 2010一起使用。根据建议,使用ItemSend
事件显示一个用户窗体,用户可以在其中选择发送选项。恐怕我不知道如何在VisualStudio中这样做,只有在VBA中。希望你能翻译这段代码
我创建了一个带有单选按钮的示例用户表单,因此只能选择一个选项
表单背后的唯一代码是卸载表单:
Private Sub CommandButton1_Click()
Unload Me
End Sub
在ThisOutlookSession模块(Outlook的内置类模块)中,以下代码在发送电子邮件时创建表单,要求发件人对电子邮件进行分类:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim frm As UserForm1
Dim chosenvalue As String
Set frm = New UserForm1
frm.Show vbModal
Select Case True
Case frm.OptionButton1.Value
chosenvalue = "PERSONAL"
Case frm.OptionButton2.Value
chosenvalue = "UNCLASSIFIED"
Case frm.OptionButton3.Value
chosenvalue = "CLASSIFIED"
Case Else ' no value chosen
MsgBox "you did not select a value. cancelling send."
Cancel = True
Exit Sub
End Select
If TypeName(Item) = "MailItem" Then
Item.Subject = Item.Subject & " [SEC=" & chosenvalue & "]"
End If
End Sub
因为我们在类模块之外创建表单,所以即使在表单关闭之后,我们也可以读取所选择的单选按钮。根据选择,主题将被修改。如果未进行选择,ItemSent事件将被取消,用户将被迫再次点击
Send
,并从userform中选择一些内容。对于初学者,您可以创建一个userform,在发送时加载/显示,其中组合框仅包含这些值。关闭该对话框时,如果选择了某个选项,请将其附加到主题中(mailItem.subject=mailItem.subject&“[SEC=UNCLASSIFIED]”
)。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim frm As UserForm1
Dim chosenvalue As String
Set frm = New UserForm1
frm.Show vbModal
Select Case True
Case frm.OptionButton1.Value
chosenvalue = "PERSONAL"
Case frm.OptionButton2.Value
chosenvalue = "UNCLASSIFIED"
Case frm.OptionButton3.Value
chosenvalue = "CLASSIFIED"
Case Else ' no value chosen
MsgBox "you did not select a value. cancelling send."
Cancel = True
Exit Sub
End Select
If TypeName(Item) = "MailItem" Then
Item.Subject = Item.Subject & " [SEC=" & chosenvalue & "]"
End If
End Sub