Pregunta

Tengo una hoja de trabajo de Excel con algunos hipervínculos. Algunos de ellos son direcciones de correo electrónico.
Cuando un usuario hace clic en un hipervínculo, determino si es o no un correo electrónico, usando Worksheet_FollowHyperlink(ByVal Target As Hyperlink) y Target.Address like "mailto:*"

Lo que quiero ahora es Cancelar el comportamiento de hipervínculo predeterminado y abra el cliente de correo electrónico, mediante programación. De esa manera, puedo proporcionar un mensaje predeterminado y agregar archivos adjuntos.

Intenté usar Cancel = True Pero no funciona. Prefiero no meterse con los hipervínculos personalizados porque Excel genera enlaces al correo electrónico automáticamente.

¿Es posible?
Abrir el hipervínculo parece suceder en otro hilo.

¿Fue útil?

Solución

no puede prevenir Un clic desde seguir el hipervínculo. Puede probar por sí mismo estableciendo un punto de interrupción en el Worksheet_FollowHyperlink sub. Excel sigue el enlace antes de Ejecutando el código.

yo No puedo ver ningún procedimiento de evento Eso ayudaría a interferir y prevenir el comportamiento.

Otro consejo que podría dar es evitar que Excel cree hipervínculos o para hacerlo con VBA con un Worksheet_Change evento.
A continuación, podrías interceptar un peuso con un Worksheet_SelectionChange y verifique si la celda contiene una dirección de correo.

Por último, pero no menos importante, si sabes que el El cliente de correo electrónico es Outlook, probablemente pueda obtener el correo recién creado para agregar archivos adjuntos, destinatarios, mensaje ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top