Con esta macro crearás un archivo nuevo a partir de la hoja activa, y a continuación envia dicho archivo por correo, usando Outlook.
Código de la macro
Sub CrearArchivoNuevoEnviarPorCorreo()
Dim Hoja As Worksheet
Dim NombreArchivo As String
Dim Rutalibro As String
Set Hoja = ActiveSheet
NombreArchivo = ActiveWorkbook.Name
Hoja.Copy
ActiveWorkbook.Save
Rutalibro = ActiveWorkbook.Path
Rutalibro = Rutalibro & «\» & ActiveWorkbook.Name
ActiveWorkbook.Close
‘Apunte importante:
‘Para que funcione esta macro hay que ir a la ficha Herramientas del mismo editor de Visual Basic, y darle a referencias.
‘ahi dentro busca el check «Microsoft Outlook 16.0 Oject Library» y marcalo.
Dim OutlookApp As Outlook.Application
Dim mItem As Outlook.MailItem
Dim Correo As String
Dim Asunto As String
Dim Mensaje As String
Dim Archivo As String
Set OutlookApp = New Outlook.Application
Correo = InputBox("Correo del destinatario", "Excel y Finanzas")
If Correo = "" Then Exit Sub
Asunto = InputBox("Indique el asunto", "Excel y Finanzas")
If Asunto = "" Then Exit Sub
Mensaje = InputBox("Escribe el mensaje que desea enviar", "Excel y Finanzas")
If Mensaje = "" Then Exit Sub
Archivo = Rutalibro
If Archivo = "" Then Exit Sub
Set mItem = OutlookApp.CreateItem(olMailItem)
With mItem
.To = Correo
.Subject = Asunto
.Body = Mensaje
.Attachments.Add Archivo
.Send
End With
Windows(NombreArchivo).Activate
End Sub
Como copiar y pegar el código
Como insertar una macro en la cinta de opciones personalizada