Note: The other languages of the website are Google-translated. Back to English

¿Cómo aplicar un botón para enviar correo electrónico con el archivo de Word actual adjunto? 

Si necesita enviar un mensaje de correo electrónico desde un documento de Word a través de Outlook y adjuntar también el archivo de Word actual, puede crear un botón de comando y luego enviar el mensaje haciendo clic en este botón sin abrir Outlook. En este artículo, presentaré cómo lidiar con él de forma rápida y sencilla.

Aplicar un botón para enviar correo electrónico con el archivo de Word actual adjunto


Aplicar un botón para enviar correo electrónico con el archivo de Word actual adjunto

Siga los siguientes pasos para resolver este trabajo en un archivo de Word:

1. Primero, debe crear un botón de comando, haga clic en Developer > Herramientas heredadas > Botón de comando (control ActiveX), ver captura de pantalla:

botón doc para enviar correo electrónico 1

2. Seleccione el botón y haga clic en Propiedades bajo el Developer pestaña, en el Propiedades panel, escriba el texto del título que necesita en el Subtítulo campo, ver captura de pantalla:

botón doc para enviar correo electrónico 2

3. Luego, cierre el Propiedades panel, ahora, haga clic derecho en el botón y elija Ver código, ver captura de pantalla:

botón doc para enviar correo electrónico 3

4. Y luego, en la pantalla Microsoft Visual Basic para aplicaciones ventana, copie y pegue el siguiente código entre los scripts originales, vea la captura de pantalla:

Dim xOutlookObj As Object
    Dim xEmail As Object
    Dim xDoc As Document
    Application.ScreenUpdating = False
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmail = xOutlookObj.CreateItem(olMailItem)
    Set xDoc = ActiveDocument
    xDoc.Save
    With xEmail
        .Subject = "Fax-data"
        .Body = "This is a test email."
        .To = "yy@addin99.com"
        .Importance = olImportanceNormal
        .Attachments.Add xDoc.FullName
        .Display
    End With
    Set xDoc = Nothing
    Set xEmail = Nothing
    Set xOutlookObj = Nothing
    Application.ScreenUpdating = True

botón doc para enviar correo electrónico 4

Nota:: En el código anterior, debe cambiar el asunto, el cuerpo del texto o la dirección de envío según sus necesidades.

5. Luego, guarde y cierre este código, haga clic en Modo de diseño para desactivar el modo de diseño. Ahora, al hacer clic en el botón de comando que ha creado, se creará un correo electrónico con el documento de Word actual como archivo adjunto, vea la captura de pantalla:

botón doc para enviar correo electrónico 5

6. Por fin, solo necesitas hacer clic Enviar botón para enviar este mensaje.


Herramientas de productividad de palabras recomendadas

 

Kutools para Word: más de 100 funciones avanzadas para Word, ahorre su 50% de tiempo

  • Las operaciones complicadas y repetidas se pueden realizar un solo procesamiento en segundos.
  • Inserte varias imágenes en carpetas en un documento de Word a la vez.
  • Fusiona y combina varios archivos de Word en carpetas en uno con el orden que desees.
  • Divida el documento actual en documentos separados según el encabezado, el salto de sección u otros criterios.
  • Convierta archivos entre Doc y Docx, Docx y PDF, colección de herramientas para conversiones y selección comunes, etc.
Comentarios (29)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Estoy tratando de enviar el correo electrónico con la línea de asunto como el contenido de uno de mis campos. es posible?
Este comentario fue minimizado por el moderador en el sitio
Hola, me podrían apoyar para que el archivo se convierta en PDF y se adjunte al correo en ves del word por favor.
Muchas gracias.
Este comentario fue minimizado por el moderador en el sitio
Hola equipo de Extend Office,

Creo que 'xEmile' está mal escrito. Debería ser 'xCorreo electrónico'.

Mientras se ejecuta el código y no hay ningún problema, la siguiente declaración no hará nada:

Establecer xEmail = Nada
Este comentario fue minimizado por el moderador en el sitio
Hola, Abhi,
Gracias por tu comentario, como dijiste, el 'xEmile' está mal escrito, debería ser 'xEmail'. He actualizado el código.
Gracias de nuevo!
Este comentario fue minimizado por el moderador en el sitio
¿Se puede hacer esto para enviar solo una página de un documento?
Este comentario fue minimizado por el moderador en el sitio
Hola Don,
Para hacer frente a su tarea, aplique el siguiente código, en el código, debe cambiar la página de inicio y la página final por las suyas:

Private Sub CommandButton1_Click ()

Dim xCurPageStart As Long, xCurPageEnd As Long, xCurPageRange As Range

Dim xCurPage como entero, xPages como entero

Dim xOutlookObj como objeto

Dim xEmail como objeto

Dim xDoc como documento, xNewDoc como documento

Dim xFilePath como cadena

Dim xOldStart como siempre, xOldEnd como siempre

On Error Resume Next

Application.ScreenUpdating = False

Establecer xOutlookObj = CreateObject("Outlook.Aplicación")

Establecer xEmail = xOutlookObj.CreateItem(olMailItem)

xFilePath = CreateObject("WScript.Shell").SpecialFolders(16)

Establecer xDoc = Documento activo

xOldStart = xDoc.Aplicación.Selección.Inicio

xOldEnd = xDoc.Application.Selection.End

xDoc.Guardar

xFilePath = xFilePath + "\archivo adjunto" + VBA.Mid(xDoc.FullName, VBA.InStrRev(xDoc.FullName, ".")) 'el archivo adjunto es el nombre del archivo adjunto, cámbielo según sus necesidades

xCurPageStart = 2 'página de inicio

xCurPageEnd = 2 'página final

xPáginas = Selección.Información(wdNumberOfPagesInDocument)

xCurPageStart = Selection.GoTo(qué:=wdGoToPage, Which:=wdGoToNext, Name:=xCurPageStart).Start

Si xPáginaCur = xPáginas Entonces

xCurPageEnd = ActiveDocument.Content.End

otro

xCurPageEnd = Selection.GoTo(qué:=wdGoToPage, Which:=wdGoToNext, Name:=xCurPageEnd + 1).Start

Si terminar

Establecer xCurPageRange = ActiveDocument.Range(xCurPageStart, xCurPageEnd)

xCurPageRange.Select

xCurPageRange.Copiar

Establezca xNewDoc = Application.Documents.Add (Visible: = False)

xNuevoDoc.Activar

xNewDoc.Content.PasteAndFormat wdFormatOriginalFormatting

xNewDoc.SaveAs2 FileName:=xFilePath

xNuevoDoc.Cerrar

xDoc.Range(xOldStart, xOldEnd).Seleccionar

Con xCorreo electrónico

.Asunto = "Datos de fax"

.Body = "Este es un correo electrónico de prueba".

.Para = "yy@addin99.com"

.Importancia = olImportanciaNormal

.Archivos adjuntos.Agregar xFilePath

.Monitor

End With

VBA.Kill xFilePath

Establecer xDoc = Nada

Establecer xEmail = Nada

Establecer xOutlookObj = Nada

Application.ScreenUpdating = True

End Sub
Este comentario fue minimizado por el moderador en el sitio
He hecho un formulario rellenable en MS Word. He usado herramientas heredadas para el cálculo, etc. También he agregado un botón de envío que funciona para enviar el formulario por correo electrónico. El problema es que cuando vuelvo a abrir este documento después de guardar, no funciona. Incluso he intentado guardarlo como documento habilitado para macros, pero no sirvió de nada. ¿Puedes ayudarme?
Muchas Gracias
Este comentario fue minimizado por el moderador en el sitio
Lo tenía funcionando al principio, y luego, por alguna razón ahora, me da un error de error 429 sobre el componente ActiveX que no puede crear el objeto. Literalmente solo copié y pegué. Esto funcionó antes, pero simplemente cambié el tamaño de la fuente, hice el botón más grande y reetiqueté el título. ¿No creo que accidentalmente cambié algunas otras configuraciones? ¿Alguna idea de que podría ser?
Este comentario fue minimizado por el moderador en el sitio
¡Hola! Me gustaría hacer que el botón de comando envíe un correo electrónico con el documento de Word como cuerpo del correo electrónico (mi documento de Word es un formulario). ¿Hay una manera de hacer eso?
Este comentario fue minimizado por el moderador en el sitio
Me gustaría que mi documento se envíe como un documento PDF en lugar de un documento de Word.
Este comentario fue minimizado por el moderador en el sitio
Por ejemplo, ¿utilizar texto de un cuadro de texto/campo de texto en el documento de Word e insertarlo como texto en la línea de asunto de su correo electrónico?
Este comentario fue minimizado por el moderador en el sitio
Sí, esto también es lo que busco. ¿Alguien puede ayudarme con esta solicitud?
Este comentario fue minimizado por el moderador en el sitio
¿Esto también funciona para Lotus Notes?
¿Qué debo cambiar en "xOutlookObj"?
Este comentario fue minimizado por el moderador en el sitio
Hola, oficina de Extend,
¿Podemos configurar un correo electrónico diferente que no esté vinculado a Outlook? ¿Te gusta el correo electrónico directo a la cuenta de GoDaddy?
Este comentario fue minimizado por el moderador en el sitio
Estoy tratando de encontrar la misma información. Utilizo gmail y necesito crear un formulario para enviarlo a diferentes direcciones de correo electrónico que pueden enviarse automáticamente a mi cuenta de gmail.
Este comentario fue minimizado por el moderador en el sitio
Creé el documento, pero mi problema ahora es que si envío este formulario para que lo completen 4 personas, cuando lo abren desde el archivo adjunto del correo electrónico, se abre en modo de solo lectura y cuando hacen clic en Enviar, les pide que lo guarden como antes. permitirá que el código abra un correo electrónico dirigido a mí. ¿Hay alguna forma de evitar esto que no sea darles la ubicación del archivo?
Este comentario fue minimizado por el moderador en el sitio
¿Puedes agregar Bcc a este código? Intenté agregar Bcc y recibí un error de compilación para la expresión esperada.
Este comentario fue minimizado por el moderador en el sitio
Hola heather

Puede agregar Bcc a este código. Por ejemplo, puede agregar .Bcc = "zmt@addin99.com" justo debajo de .To = "yy@addin99.com". Entonces el código se convierte en:

Dim xOutlookObj como objeto
Dim xEmail como objeto
Dim xDoc como documento
Application.ScreenUpdating = False
Establecer xOutlookObj = CreateObject("Outlook.Aplicación")
Establecer xEmail = xOutlookObj.CreateItem(olMailItem)
Establecer xDoc = Documento activo
xDoc.Guardar
Con xCorreo electrónico
.Asunto = "Datos de fax"
.Body = "Este es un correo electrónico de prueba".
.Para = "yy@addin99.com"
.CCO = "zmt@addin99.com"
.Importancia = olImportanciaNormal
.Archivos adjuntos.Agregar xDoc.Nombre completo
.Monitor
End With
Establecer xDoc = Nada
Establecer xEmail = Nada
Establecer xOutlookObj = Nada
Application.ScreenUpdating = True

Por favor, vea la imagen adjunta. Que tengas un lindo día.
Atentamente,
Mandyhttps://www.extendoffice.com/images/stories/comments/comment-zmt/Add_Bcc_to_code.png
Este comentario fue minimizado por el moderador en el sitio
Hola a todos,

Quiero aplicar un botón donde hago clic y envío el documento como correo electrónico, no como un archivo adjunto, a una dirección de correo electrónico. Para que el documento sea el texto del correo electrónico. Al igual que el efecto del botón "enviar al destinatario" en la cinta.

¿Alguien puede darme el código correcto para eso?

Gracias por su atención.
Este comentario fue minimizado por el moderador en el sitio
Hola,
Puede ser que el código no pueda ayudar a enviar el documento de Word actual como el cuerpo del correo electrónico; si lo hace, se perderán la imagen y el formato del archivo dentro del documento.
Si desea enviar el documento actual como cuerpo de correo electrónico, la combinación de correspondencia puede hacerle un favor.
¿Necesita la combinación de correspondencia para enviar correos electrónicos?
Si lo necesita, por favor comente aquí.
¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola,

¡Gracias por tu ayuda!

Lo intentaría con tu sugerencia. Así que sí, necesito la combinación de correspondencia para enviar correos electrónicos.
Este comentario fue minimizado por el moderador en el sitio
Hola,

¡Gracias por tu ayuda!

Lo intentaría con tu sugerencia. ¿Podría darme el código para combinar correspondencia?

¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola,
Para enviar el documento de Word actual como cuerpo del correo, puede agregar el Enviar a destinatario de correo comando a tu QAT, haz lo siguiente:
1. Abra el archivo de Word que desea enviar y luego haga clic en Declarar impuestos > Opciones.
2. En el panel izquierdo, seleccione Acceso rapido a la barra de herramientas.
3. Seleccionar Comandos que no están en la cinta de Elija comandos de.
4. Elija y seleccione Enviar a destinatario de correo y haga clic en el botón Agregar>>.
5. Hacer clic en OK para cerrar el diálogo
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-file-1.png

Ahora esto Enviar a destinatario de correo El comando aparecerá en el Acceso rapido a la barra de herramientas en la parte superior de la ventana de Word. Luego, puede insertar la información relativa en el encabezado del mensaje. Después de terminar la información, por favor haga clic en Enviar una copia, el mensaje con el documento de Word actual como cuerpo se enviará de inmediato.

https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-file-3.png

Por favor, intente esto, ¡espero que pueda ayudarlo!
Este comentario fue minimizado por el moderador en el sitio
Descubrí que el botón funciona para abrir un correo electrónico, pero cuando uso la combinación de correspondencia, el botón VBA se vuelve inactivo por algún motivo.
¿Cómo puedo asegurarme de que cuando se usa la combinación de correspondencia, el botón funcionará para que el usuario complete el formulario y luego active el botón, por favor?
Este comentario fue minimizado por el moderador en el sitio
Hola mike,
Cuando uso la función de combinación de correspondencia, el botón está activo.
¿Podrías explicar tu problema más detalladamente?
O puede cargar su archivo aquí, para que podamos verificar dónde está el problema.
¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola Skyyang,

Por favor, vea la publicación que puse a continuación que tiene la copia adjunta.
Este comentario fue minimizado por el moderador en el sitio
Hola,
Consulte el documento adjunto a continuación.
Necesito actualizarlo para el uso de renovaciones de 2023 y cuando se fusiona, el botón parece deshabilitarse ya que varios miembros me dijeron que no funciona.

Gracias,

Mike
Este comentario fue minimizado por el moderador en el sitio
Hola mike,
He probado su archivo en mi computadora, funciona bien. Estoy usando Office 2019. Consulte la siguiente demostración:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/send-doeument.gif
Este comentario fue minimizado por el moderador en el sitio
Hola Skyyang,

Descubrí que esto funciona cuando un usuario tiene MS Word pero parece que los correos electrónicos como @hotmail; @gmail; y las direcciones de correo electrónico de @live, ¿esos usuarios tienen problemas en los que el botón no funciona?
Parece que tampoco funciona en teléfonos inteligentes si el usuario confía en usarlos en lugar de una computadora.
Por último, recibí una respuesta de otro usuario que usa Windows 11 donde el botón no funciona en absoluto.

¿Qué has experimentado con los ejemplos anteriores, por favor?

Gracias,

Mike
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Siganos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL