Pega estos procedimientos en un modulo de VBA (Alt+F11), y asigna el procedimiento Enviar_adjunto a un botón en tu hoja, lo que hace es leer una lista de correos que se encuentran en la hoja2 y comienzan a partir de la celda B2, guarda el archivo y lo adjunta al correo.
Informa si tienes alguna duda.
Sub Enviar_Adjunto()
resp = MsgBox("Desea enviar el archivo por correo?", vbYesNo, "Envío")
MsgBox resp
If resp = 6 Then
Application.DisplayAlerts = False
Call Obtiene_Correos ' *** Se manda llamar el procedimiento para leer los correos de la hoja2
Application.ActiveWorkbook.Save
'Declarar variables
Dim OLApp As Outlook.Application
Dim OLMail As Object
'Abrir la aplicacion Outlook y crear el email
Set OLApp = New Outlook.Application
Set OLMail = OLApp.CreateItem(0)
OLApp.Session.Logon
'Detallar los elementos del email, a quienes enviar, titulos y archivo a adjuntar
With OLMail
.To = Correos
'.CC = “”
'.BC = “”
.Subject = "Asunto de Correo"
.Body = "Envio de Adjunto"
.Attachments.Add ActiveWorkbook.FullName
.Display
.Send
End With
'Limpiar datos almacenados en las variables definidas
Set OLMail = Nothing
Set OLApp = Nothing
End If
End Sub
Sub Obtiene_Correos()
Worksheets("Hoja2").Activate
Range("B2").Activate
Correos = ActiveCell.Offset(0, 2).Value
ActiveCell.Offset(1, 0).Activate
Do While ActiveCell.Value <> ""
Correos = Correos & "; " & ActiveCell.Offset(0, 2).Value
ActiveCell.Offset(1, 0).Activate
Loop
End Sub