En Outlook, ¿cómo usar VBA para escribir automáticamente el nombre del correo electrónico en el nombre especificado al hacer clic en el botón Responder?
★ Paso uno:
Agregue un módulo de clase y asígnele el nombre ?ReplyHandler, copie el siguiente código:
Opción?Explicit
¿Privado?WithEvents?mItem?As?MailItem
Público?WithEvents?myExplorer?As?Explorer
'?#########
'?Destructor.
'?#########
¿Privado?Sub?Class_Terminate()
Si?No?( mItem? ¿Es?Nada)?Entonces
Establecer?mItem?=?Nada
Fin?Si
Si?No?(myExplorer?Is?Nothing) ?Entonces
¿Establecer?miExplorador?=?Nada
¿Fin?Si
¿Fin?Sub
'?##### ## ################################################## ##
'Evento: ocurre cuando el usuario selecciona la acción "Responder" para un elemento (una instancia del objeto principal).
' ####### ######################################### ######### ##
¿Privado?Sub?mItem_Reply(ByVal?Response?As?Object,?_
¿Cancelar?As?Boolean)
Respuesta.Subject?= ?"[Modificar el asunto del correo electrónico al nombre especificado]"
End?Sub
'?########## ######## ##############################
'?Evento:?Ocurre al seleccionar otro o más Microsoft Outlook artículos.
'######################## ################ ########
¿Privado?Sub?myExplorer_SelectionChange()
¿Atenuar?mySel?Como?Selección
Establecer?mySel?=?myExplorer .Selection
'?/*?Solo hay un elemento seleccionado en la ventana del navegador.?*/
If?mySel.Count?=?1?Then
Dim?objItem?As?Object
Set?objItem?=?mySel.Item(1)
'?/*?El elemento seleccionado es un correo.? */
If?objItem.Class?=?olMail?Then
'?/*?Registro dinámico El evento ?Responder del correo electrónico.?*/
Establecer?mItem?=?objItem
Fin?Si
Fin?Si
Establecer?mySel?=?Nada
Establecer?objItem?=?Nada
End?Sub
'?######### ############## #############
'?Forzar activación del evento de cambio del elemento seleccionado en la ventana del navegador.
'?####### #
###########################
¿Público?Sub?ForceSelectionChange()
¿Llamar? myExplorer_SelectionChange
End?Sub
★ Paso 2:
Agrega un módulo (el nombre solo debe ser legal) y copia el siguiente código: Option?Explicit
Dim?rHandler?As?ReplyHandler
'?#############
'?Enganche de respuesta por correo electrónico.< / p>
'?#############
Público?Sub?HookReply()
Establecer?rHandler?=?Nuevo? ReplyHandler
Set?rHandler.myExplorer?=?Application.ActiveExplorer
rHandler.ForceSelectionChange
End?Sub
'?## # ##########
'?Descolgar respuesta de correo electrónico.
'?#############
Público?Sub?UnhookReply()
Establecer?rHandler?=?Nada
Fin?Sub
★ Paso 3:
Ejecute la macro HookReply para enlazar las respuestas de correo electrónico. Si necesita dejar de monitorear los eventos de clic en "responder", ejecute UnhookReply para desenganchar.
Finalmente, aquí hay dos representaciones en ejecución:
PD: ¡El entorno de ejecución del código anterior es Windows 7 + Outlook 2010!
-------------------------------
Si tienes alguna pregunta sobre esto ¡Las preguntas son bienvenidas!