Tabla de contenido
En este artículo, le mostraremos 5 Macro a enviar correo electrónico de Excel Para demostrar nuestros métodos, hemos seleccionado un conjunto de datos con 3 columnas : " Nombre ", " Correo electrónico ", y " Ciudad ".
Descargar el cuaderno de prácticas
Utilizar macro para enviar Email.xlsm5 Maneras de Usar Macro para Enviar Email desde Excel
1. Uso de la biblioteca de objetos de Outlook para enviar correo electrónico
Por primera Macro vamos a habilitar " Biblioteca de objetos de Microsoft Outlook 16.0 " a enviar un correo electrónico de Excel Además, tenemos que iniciar sesión en nuestro Outlook cuenta en Excel .
Pasos:
Al principio, vamos a sacar el Visual Basic ventana.
- En primer lugar, desde el Desarrollador tab>>> seleccionar Visual Basic .
También puede pulsar ALT + F11 para mostrar el VBA ventana.
- En segundo lugar, de Herramientas seleccione " Referencias... ".
Un nuevo cuadro de diálogo aparecerá.
- En tercer lugar, seleccione " Biblioteca de objetos de Microsoft Outlook 16.0 ", y pulse OK .
Así, habilitaremos Biblioteca de objetos de Outlook .
- Los de Inserte Seleccionar Módulo .
Escribiremos nuestro código aquí.
- A continuación, escriba el siguiente código.
Sub Macro_Send_Email() Dim eApp As Outlook.Application Dim eSource As String Set eApp = New Outlook.Application Dim eItem As Outlook.MailItem Set eItem = eApp.CreateItem(olMailItem) eItem.To = Range("C5").Value 'Estos elementos son opcionales 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Sending Email using VBA from Excel" eItem.Body = "Hello," & vbNewLine &"Espero que este email te encuentre bien." & _ vbNewLine & vbNewLine & _ "Sinceramente," & vbNewLine & "Exceldemy" 'Si quieres adjuntar este libro de trabajo, entonces descomenta estas dos líneas de abajo 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'puede usar .Send End Sub
Desglose de código VBA
- En primer lugar, llamamos a nuestro Subprocedimiento Macro_enviar_mail .
- En segundo lugar, estamos declarando la variable tipos.
- En tercer lugar, estamos seleccionando Outlook como nuestro Solicitud por correo .
- A continuación, seleccionamos nuestro correo electrónico dirección de envío de célula C5 .
- Después, el correo electrónico en nuestro código.
- Por último, " Propiedad Display de VBA "para mostrar nuestro correo electrónico Por lo tanto, tendremos que pulsar Enviar manualmente a enviar el correos electrónicos Además, podemos utilizar " Enviar propiedad " a enviar correos electrónicos sin mostrar.
- Después de eso, Guardar y cierre el Módulo .
Ahora, vamos a Ejecutar el código.
- En primer lugar, desde el Desarrollador tab>>> seleccionar Macros .
En Cuadro de diálogo de macros aparecerá.
- En segundo lugar, seleccione nuestro Subprocedimiento " Macro_enviar_mail ".
- Por último, pulse Ejecutar .
Tras ejecutar el código, veremos el icono correo electrónico Podemos hacer clic en Enviar Así, le hemos mostrado el primer método de enviando un correo electrónico de excel utilizando VBA .
Más información: Enviar Correo Electrónico desde Excel VBA sin Outlook (4 Ejemplos Adecuados)
2. Macro para enviar correo electrónico desde una cuenta de Gmail en Excel
Para este método, necesitamos acceso menos seguro a las aplicaciones del Gmail Además, tendremos que habilitar Microsoft CDO del Referencias menú.
Pasos:
- En primer lugar, como se muestra en el primer método , que aparezca el Cuadro de diálogo Referencias .
- En segundo lugar, seleccione " Biblioteca Microsoft CDO para Windows 2000 " y pulse OK .
- En tercer lugar, vaya a Seguridad de su Configuración de la cuenta de Google .
- Por último, enciende Acceso menos seguro a las aplicaciones .
Ahora, introduciremos nuestro Macro código.
- En primer lugar, como se muestra en el método 1 , que aparezca el Módulo y escribe este código.
Option Explicit Sub Send_Gmail_Macro() Dim cMail As Object Dim cConfig As Object Dim sConfig As Variant Dim cSubject As String Dim cFrom As String Dim cTo As String Dim cCC As String Dim cBcc As String Dim cBody As String cSubject = "Macro para enviar Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Hola. Este es un mensaje automatizado. Por favor, no responda" Set cMail =CreateObject("CDO.Message") On Error GoTo Error_Handling Set cConfig = CreateObject("CDO.Configuration") cConfig.Load -1 Set sConfig = cConfig.Fields With sConfig .Item("//schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("//schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("//schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1.Item("//schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" .Item("//schemas.microsoft.com/cdo/configuration/sendpassword") = "SenderGmailPassword" .Item("//schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("//schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With With cMail Set .Configuration = cConfig End With cMail.Subject =cSubject cMail.From = cFrom cMail.To = cTo cMail.TextBody = cBody cMail.CC = cCC cMail.BCC = cBcc cMail.Send Error_Handling: If Err.Description "" Then MsgBox Err.Description End Sub
Desglose de código VBA
- En primer lugar, llamamos a nuestro Subprocedimiento Enviar_Gmail_Macro .
- En segundo lugar, estamos declarando la variable tipos.
- En tercer lugar, estamos fijando el correo electrónico contenido en nuestro código.
- Entonces, estamos proporcionando nuestra credenciales de acceso Tienes que escribir tu propio ID y Contraseña aquí.
- Después de eso, nos hemos propuesto puerto a 465 .
- Por último, estamos enviando nuestra correo electrónico .
- Entonces, Guardar y Ejecutar este código.
Hemos conseguido enviado un correo electrónico a nuestra dirección.
Read More: Macro para Enviar Email desde Excel con Cuerpo (3 Casos Útiles)
3. Enviar correo electrónico a una lista de destinatarios desde una columna
Para el tercer método, vamos a enviar correos electrónicos a 7 personas que utilizan Macro de Excel Encontraremos el último fila de nuestro conjunto de datos, por lo que nuestro código funcionará para una lista más larga. Vamos a enviar correos electrónicos del celda C5:C10 gama.
Pasos:
- En primer lugar, como se muestra en el método 1 , que aparezca el Módulo y escribe este código.
Sub Macro_Send_Email_From_A_List() Dim pApp As Object Dim pMail As Object Dim z As Integer Dim eList As String Dim eRow As Long Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) eRow = Range("C:C").SpecialCells(xlCellTypeLastCell).Row - 1 With pMail eList = "" For z = 5 To eRow If eList = "" Then eList = Cells(z, 3).Value Else eList = eList & ";" & Cells(z,3).Value End If Next z .BCC = eList .Subject = "Hola" .Body = "Este mensaje se lo envía Exceldemy" .Display 'Puede utilizar .Send aquí End With Set pMail = Nada Set pApp = Nada End Sub
Desglose de código VBA
- En primer lugar, llamamos a nuestro Subprocedimiento Macro_Send_Email_From_A_List .
- En segundo lugar, estamos declarando la variable tipos.
- En tercer lugar, estamos seleccionando Outlook como nuestro Solicitud por correo .
- Entonces, estamos encontrando el última fila que es 10 para nuestro conjunto de datos.
- Después de eso, como nuestro correo electrónico comienza a partir de fila 5 hemos introducido 5 como valor inicial de " variable z "Además, nuestro correos electrónicos están en el Columna C por lo que hemos introducido 3 dentro del Células propiedad.
- A continuación, establecemos el correo electrónico contenido en nuestro código.
- Por último, " Mostrar "para mostrar nuestro correo electrónico Por lo tanto, tendremos que pulsar Enviar manualmente a enviar el correos electrónicos Además, podemos utilizar " .Enviar " a enviar correo electrónico sin mostrar.
- Entonces, Guardar y Ejecutar el Módulo .
Podemos ver que todos nuestros correos electrónicos se muestran en BCC En conclusión, basta con pulsar Enviar para completar nuestra tarea.
Más información: Cómo enviar correo electrónico desde una lista de Excel (2 formas efectivas)
Lecturas similares
- Cómo enviar un correo electrónico automáticamente cuando se cumple una condición en Excel
- Cómo compartir archivos de Excel en línea (2 métodos sencillos)
- Enviar recordatorio por correo electrónico automáticamente desde una hoja de cálculo de Excel utilizando VBA
- Cómo Enviar Email Si Se Cumplen Condiciones en Excel (3 Métodos Fáciles)
- Cómo activar Compartir libro en Excel
4. Macro para enviar una sola hoja por correo electrónico
En esta sección enviar el Hoja de trabajo activa Aquí, tendremos que elegir la ubicación de nuestro Excel archivo.
Pasos:
- En primer lugar, como se muestra en el método 1 , que aparezca el Módulo y escribe este código.
Sub Macro_Email_Single_Sheet() Dim pApp As Object Dim pMail As Object Dim zBook As Workbook Dim fxName As String 'Dim zSheet As Worksheet 'Dim shtName As String Application.ScreenUpdating = False ActiveSheet.Copy Set zBook = ActiveWorkbook fxName = zBook.Worksheets(1).Name On Error Resume Next Kill "C:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName On Error GoTo 0 zBook.SaveAsFileName:="C:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = "[email protected]" .Subject = "Macro to Send Single Sheet via Email" .Body = "Dear RecieverName," & vbCrLf & vbCrLf & _ "Your requested file is attached" .Attachments.Add zBook.FullName .Display End WithzBook.ChangeFileAccess Mode:=xlReadOnly Kill zBook.FullName zBook.Close SaveChanges:=False Application.ScreenUpdating = True Set pMail = Nothing Set pApp = Nothing End Sub
Desglose de código VBA
- En primer lugar, llamamos a nuestro Subprocedimiento Macro_Email_hoja_única .
- En segundo lugar, estamos declarando el variable tipos.
- En tercer lugar, estamos copiando el Hoja activa y guardarlo como Cuaderno de trabajo .
- Después de eso, estamos seleccionando Outlook como nuestro Solicitud por correo .
- A continuación, establecemos el correo electrónico contenido en nuestro código.
- Después de eso, hemos adjuntado el Hoja a la correo electrónico .
- Por último, utilice " Mostrar " para mostrar nuestro correo electrónico Por lo tanto, tendremos que pulsar Enviar manualmente a enviar el correos electrónicos Además, podemos utilizar " .Enviar " a enviar correo electrónico sin mostrar.
- Entonces, Guardar y Ejecutar el Módulo .
Veremos el Hoja nombre en la ventana. Pulse Enviar para completar la tarea.
Podemos abra el archivo y verificar que nuestro código funciona.
Más información: Cómo enviar una hoja de cálculo Excel editable por correo electrónico (3 métodos rápidos)
5. Macro para Enviar Email Basado en el Valor de la Celda
Para el último método, hemos cambiado un poco nuestro conjunto de datos. Hemos añadido el " Pago Debido " columna al conjunto de datos. Aquí, vamos a enviar un correo electrónico que contiene la ciudad " Obama "Podemos ver claramente que fila 5 lo contiene, por lo tanto vamos a enviar un correo electrónico sólo a esa persona.
Pasos:
- En primer lugar, como se muestra en el método 1 , que aparezca el Módulo y escribe este código.
Option Explicit Sub Send_Email_Condition() Dim xSheet As Worksheet Dim mAddress As String, mSubject As String, eName As String Dim eRow As Long, x As Long Set xSheet = ThisWorkbook.Sheets("Conditions") With xSheet eRow = .Cells(.Rows.Count, 5).End(xlUp).Row For x = 5 To eRow If .Cells(x, 4)>= 1 And .Cells(x, 5) = "Obama" Then mAddress = .Cells(x, 3) mSubject = "Solicitud De Pago" eName =.Cells(x, 2) Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName) End If Next x End With End Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String) Dim pApp As Object Dim pMail As Object Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = mAddress .CC = "" .BCC = "" .Subject = mSubject .Body ="Sr./Sra. " & eName & ", Por favor, pague la cantidad adeudada dentro de la próxima semana." _ & vbNewLine & "La cantidad exacta se adjunta con este correo electrónico." .Attachments.Add ActiveWorkbook.FullName 'Enviar el archivo por correo electrónico .Display 'Podemos utilizar .Send aquí también End With Set pMail = Nothing Set pApp = Nothing End Sub
Desglose de código VBA
- En primer lugar, llamamos a nuestro primer Subprocedimiento Condición_de_envío .
- En segundo lugar, estamos declarando el Variable tipos y configuración " Condiciones "como nuestro Hoja .
- En tercer lugar, el último fila Además, nuestro valor parte de fila 5 de ahí que hayamos puesto fila 5 hasta el último fila en nuestro código.
- A continuación, llame a nuestro segundo Subprocedimiento Enviar_mail_con_condición_múltiple .
- Después de eso, estamos seleccionando Outlook como nuestro Solicitud por correo .
- Entonces, el correo electrónico en nuestro código.
- Aquí, estamos adjuntando el Excel con el archivo correo electrónico utilizando el Adjunto método.
- Después de eso, " Mostrar "para mostrar nuestro correo electrónico Por lo tanto, tendremos que pulsar Enviar manualmente a enviar el correos electrónicos Además, podemos utilizar " .Enviar " a enviar correo electrónico sin mostrar.
- Entonces, Guardar y Ejecutar el Módulo .
En conclusión, le hemos mostrado otro método de enviando un correo electrónico utilizando Macro VBA de Excel .
Más información: Enviar Emails Automáticamente desde Excel Basado en el Contenido de las Celdas (2 Métodos)
Sección práctica
Hemos añadido conjuntos de datos de práctica para cada método en la sección Excel archivo.
Conclusión
Le hemos mostrado 5 métodos a utilizar Macro a enviar un correo electrónico de Excel Gracias por leer, ¡sigue superándote!