在outlook里,如何用VBA实现点击回复按钮时自动将邮件名写成指定的名称?
在outlook里,如何用VBA实现点击回复按钮时自动将邮件名写成指定的名称?就是在outlookVBA里,点击回复/全部回复时触发的时间是什么?请高手帮忙~...
在outlook里,如何用VBA实现点击回复按钮时自动将邮件名写成指定的名称?
就是在outlook VBA里,点击回复/全部回复时触发的时间是什么?
请高手帮忙~ 展开
就是在outlook VBA里,点击回复/全部回复时触发的时间是什么?
请高手帮忙~ 展开
1个回答
展开全部
★ 第一步:
添加一个类模块并命名为 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!
--------------------------------
对此如有疑问,欢迎提出!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询