En el post
anterior vimos como podíamos enviar un archivo adjunto desde Excel 2003. En
esta ocasión utilizaremos el mismo ejemplo pero para las versiones 2007 0 2010,
que son las más recientes.
Es necesario aclarar que el
código del post anterior puede funcionar con Excel 2003 con el paquete de
compatibilidad de office 2007/2010 pero si utilizan el archivo en una
computadora que no lo tiene les va a generar un error.
Es importante tener en cuenta que
utilizamos un ejemplo de aplicación pero esta idea puede servir para muchas
otras aplicaciones en donde debemos enviar información mediante correo
electrónico.
El archivo a adjuntar se trata de
la credencial de socio del ejemplo. Ya habíamos visto como generarla, como
poder visualizarla y ahora agregamos otra funcionalidad, poder enviarla por
mail.
Para ejecutar el códigos se crea
una macro llamada “enviar_mail” y se vincula a un objeto, una imagen en forma
de sobre.
El código es el siguiente:
----------------------------------------------------------------------------------------------
Sub enviar_mail()
'
PabloFSix
'
Excelminiapps.blogspot.com
'Defino
las variables como objetos de Outlook
Dim Out As Object
Dim Omail As Object
'Asigno
referencias de objeto a variable
Set
Out = CreateObject("Outlook.Application")
Set
Omail = Out.CreateItem(0)
'completo los campos necesarios del e-mail
With Omail
.To = Sheets("Socio
Card").Range("C11").Text
.Subject = Sheets("Socio
Card").Range("D19").Text
.Body = Sheets("Socio
Card").Range("D20").Text
.Attachments.Add Sheets("Socio
Card").Range("D17").Text & "\" & _
Sheets("Socio
Card").Range("C5").Text & ".pdf"
'Si esta activado el checkbox se
visualiza el mensaje sino lo envía directamente
If Sheets("Socio
Card").CheckBox1.Value = True Then
.Display
Else
.Send
End If
End With
'desvinculo
la variable de los objetos del Outlook
Set Omail = Nothing
Set
Out = Nothing
'si esta
desactivada la casilla de verificación muestra el mensaje enviado
If
Sheets("Socio Card").CheckBox1.Value = False Then
MsgBox "Mail enviado"
End
If
End Sub
----------------------------------------------------------------------------------------------
Como ven el código prácticamente
tiene la misma declaración que para el código que utilizamos para Excel 2003,
lo único que cambia son los objetos “Outlook mail” que utilizamos, ya que de
una versión a otra cambian.
Diferencias en la declaración de Objetos
Para 2003:
así se definía
Set Out = New Outlook.Application
Set Omail = Out.CreateItem(olMailItem)
Para
2001/2010: así se define ahora
Set Out =
CreateObject("Outlook.Application")
Set Omail = Outmail.CreateItem(0)
Próximamente se va a colgar el
archivo de ejemplo en la zona de Descargas. Como
el archivo esta en Excel 2007/2010, quizás puedan ejecutarlo para ver el
ejemplo.
Les recomendamos que sigan el
blog por alguno de los medios, mail o por redes sociales, para recibir las
actualizaciones y novedades.
¡Éxitos!
Keys:
2 comentarios:
Realmente me parese excelente esta función y mi idea es utilizarla, pero tengo un problema. El caso puntual es que necesito que los mails se envien con formato, es decir que al momento de enviarlo mantenga color, negrita, subrayado, links, etc... ya que lo utilizo para enviar material de descarga a compradores. ¿Habra posibilidad de mantener estas propiedades????. Saludos cordiales. Gabriel
Hola Amigo, gracias por tus comentarios. Puedes escribirnos mediante el formulario de contacto y te respondemos.
Sds
Publicar un comentario