在outlook里,如何用VBA实现点击回复按钮时自动将邮件名写成指定的名称?

在outlook里,如何用VBA实现点击回复按钮时自动将邮件名写成指定的名称?就是在outlookVBA里,点击回复/全部回复时触发的时间是什么?请高手帮忙~... 在outlook里,如何用VBA实现点击回复按钮时自动将邮件名写成指定的名称?
就是在outlook VBA里,点击回复/全部回复时触发的时间是什么?
请高手帮忙~
展开
 我来答
K_BEAT
推荐于2017-12-16 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:401万
展开全部

★ 第一步:

添加一个类模块并命名为 ReplyHandler,复制以下代码:


Option Explicit

Private WithEvents mItem As MailItem
Public WithEvents myExplorer As Explorer

' #########
' 析构函数.
' #########
Private Sub Class_Terminate()
    If Not (mItem Is Nothing) Then
        Set mItem = Nothing
    End If
    
    If Not (myExplorer Is Nothing) Then
        Set myExplorer = Nothing
    End If
End Sub

' #############################################################
' 事件: 当用户为项目 (父对象的一个实例) 选择 "答复" 动作时发生.
' #############################################################
Private Sub mItem_Reply(ByVal Response As Object, _
                        Cancel As Boolean)
    
    Response.Subject = "[修改邮件主题为指定的名称]"
End Sub

' ##################################################
' 事件: 选择其他或更多 Microsoft Outlook 项目时发生.
' ##################################################
Private Sub myExplorer_SelectionChange()
    Dim mySel As Selection
    
    Set mySel = myExplorer.Selection
    
    ' /* 浏览器窗口中有且只有一个项目被选中. */
    If mySel.Count = 1 Then
        Dim objItem As Object
        
        Set objItem = mySel.Item(1)
        
        ' /* 该选中项目是邮件. */
        If objItem.Class = olMail Then
            ' /* 动态注册邮件的 Reply 事件. */
            Set mItem = objItem
        End If
    End If
    
    Set mySel = Nothing
    Set objItem = Nothing
End Sub

' #####################################
' 强制触发浏览器窗口中的选中项改变事件.
' #####################################
Public Sub ForceSelectionChange()
    Call myExplorer_SelectionChange
End Sub


★ 第二步:

添加一个模块(名称只要合法就行),复制以下代码:

Option Explicit

Dim rHandler As ReplyHandler

' #############
' 挂钩邮件回复.
' #############
Public Sub HookReply()
    Set rHandler = New ReplyHandler
    Set rHandler.myExplorer = Application.ActiveExplorer
    rHandler.ForceSelectionChange
End Sub

' #############
' 解钩邮件回复.
' #############
Public Sub UnhookReply()
    Set rHandler = Nothing
End Sub


★ 第三步:

运行 HookReply 宏即可挂钩邮件回复,如需停止对点击 "回复" 事件的监控,那么请运行 UnhookReply 进行解钩。


最后,附上两张运行效果图:




PS:上述代码的运行环境为 Windows 7 + Outlook 2010!

--------------------------------

对此如有疑问,欢迎提出!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式