Te anexo la macro con unos ajustes.
Sub Enviar_Correo_Por_Yahoo()
'Act.Por Dante Amor
correo = "[email protected]"
Password = "password"
rango = "A1:G26"
arch = Range("K4").Value & ".pdf"
para = Range("K1").Value
asunto = Range("K2").Value
cuerpo = Range("K3").Value
'
Set Email = New CDO.Message
dato = "http://schemas.microsoft.com/cdo/configuration/"
Email.Configuration.Fields.Item(dato & "smtpserver") = "smtp.mail.yahoo.com"
Email.Configuration.Fields.Item(dato & "sendusing") = 2
Email.Configuration.Fields.Item(dato & "smtpserverport") = 465
Email.Configuration.Fields.Item(dato & "smtpauthenticate") = Abs(1)
Email.Configuration.Fields.Item(dato & "smtpconnectiontimeout") = 30
Email.Configuration.Fields.Item(dato & "sendusername") = correo
Email.Configuration.Fields.Item(dato & "sendpassword") = Password
Email.Configuration.Fields.Item(dato & "smtpusessl") = True
DoEvents
'
ruta = ThisWorkbook.Path & "\"
Range(rango).ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & arch, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
'
Email.From = correo
Email.To = para
Email.Subject = asunto
Email.TextBody = cuerpo
Email.AddAttachment ruta & arch
Email.Configuration.Fields.Update
On Error Resume Next
Email.Send
werr = Err.Number & " " & Err.Description
MsgBox "Mensaje del Correo enviado: " & werr, vbInformation
End Sub
Si el resultado de la macro es 0, entonces el correo fue enviado.
Si te aparece algún mensaje, entonces me envías el texto del mensaje.
Debes seguir las indicaciones que te envié:
Adaptar esta macro a Yahoo para mandar
[No olvides valorar las respuestas.