Red de conocimiento informático - Material del sitio web - 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?

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!