Um outro modo de enviarmos um e-mail é por utilizarmos o comando ShellExecute para executar qualquer programa dentro do VBA. O comando ShellExecute pode ser usado para carregar um documento com um programa associado. Em essência, criamos um objeto string e o passamos como um parâmetro para a função ShellExecute. O resto do trabalho é feito pelo Windows. Ele decide automaticamente qual programa está associado a determinado tipo de documento.
Podemos usar a função ShellExecute para abrirmos o IExplorer, Word, Paintbrush e uma série de outras aplicações.
A operação pode ser lenta e se não quiser executar o Send Keys antes mesmo do e-mail aparecer na tela e esperar alguns segundos, certifique-se que o envio do e-mail foi processos totalmente e, em seguida, ative o Send Keys. O envio precipitado impedirá que o email seja enviado.
Sub SendKeyMail()
Dim Mail_Object As String
Dim Email_Subject, Email_Send_To, Email_Cc, Email_Bcc, Email_Body As String
Email_Subject = "A&A: Enviando email via Keys"
Email_Send_To = " <Endereço de email para quem envia> "
Email_Cc = " <Endereço de email para quem deseja enviar cópia> "
Email_Bcc = " <Cópia oculta deste email> "
Email_Body = " Parabéns!!!! Seu email foi enviado !!!!"
Mail_Object = "mailto:" & Email_Send_To & "?subject=" & Email_Subject & "& body=" & Email_Body & "& cc=" & Email_Cc & "& bcc=" & Email_Bcc
On Error GoTo debugs
ShellExecute 0&, vbNullString, Mail_Object, vbNullString, vbNullString, vbNormalFocus
Application.Wait (Now + TimeValue("0:00:03"))
Application.SendKeys "%s"
debugs:
If Err.Description <> "" Then MsgBox Err.Description
End Sub