如何在Outlook模板中用多输入框修改主题并自动发送邮件
Outlook模板自动生成主题并发送邮件方案
你的需求完全可以实现,以下是调整后的中文版本代码,解决原代码的潜在问题并适配中文场景:
Private Sub Application_ItemLoad(ByVal Item As Object) ' 定义Outlook邮件类常量,避免未定义错误 Const olMail As Integer = 43 ' 关闭错误忽略,便于排查问题 On Error GoTo ErrorHandler ' 判断打开的是邮件项,且主题匹配你的模板主题 If Item.Class = olMail Then If Item.Subject = "你的邮件模板主题" Then Dim 编号 As String, 地点 As String, 日期 As String Dim 组合主题 As String ' 依次弹出输入框收集信息 编号 = InputBox("请输入编号:") If 编号 = "" Then Exit Sub ' 用户取消输入,终止流程 地点 = InputBox("请输入地点:") If 地点 = "" Then Exit Sub 日期 = InputBox("请输入日期:") If 日期 = "" Then Exit Sub ' 组合主题行 组合主题 = 编号 & " " & 地点 & " " & 日期 Item.Subject = 组合主题 ' 自动发送邮件 Item.Send End If End If ExitSub: Exit Sub ErrorHandler: MsgBox "发生错误:" & Err.Description, vbExclamation Resume ExitSub End Sub
操作步骤:
- 打开Outlook,按下
Alt+F11打开VBA编辑器 - 在左侧导航栏展开
Project1->Microsoft Outlook Objects,双击ThisOutlookSession - 将上述代码粘贴进去,把代码里的
"你的邮件模板主题"替换成你实际的邮件模板主题 - 保存文件,关闭VBA编辑器
- 调整Outlook宏安全设置:文件 -> 选项 -> 信任中心 -> 信任中心设置 -> 宏设置,选择"启用所有宏"(或"启用签署的宏",如果给宏签名的话)
注意事项:
- 模板的主题必须和代码中填写的完全一致,否则不会触发弹窗
- 如果用户在任意输入框点击取消或留空,流程会终止,不会发送邮件
- 自动发送前不会弹出确认窗口,确保模板内容已经提前设置好
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

