Resolvendo uma dúvida no fórum recentemente, fui questionado de como abrir o Microsoft Outlook pelo VBA. A dúvida inicial era o envio de email, cujo exemplo abaixo pode ser visto:
http://www.tomasvasquez.com.br/downloads/e-mail_VBA_Outlook.xls
O problema é que este código segue a mesma lógica da criação de um email quando se clica em um link em uma página de internet, quando é aberto um novo email do Outlook e ao clicar em enviar, ele vai para a caixa de saída, sendo enviado somente quando o Outlook é aberto normalmente.
Pois bem, para forçar a abertura do Microsoft Outlook, o código abaixo é necessário:
Sub AbreOutlook() Dim Olook As Outlook.Application Set Olook = CreateObject("Outlook.Application") Dim ns As Outlook.Namespace Dim Folder As Outlook.MAPIFolder Set ns = Olook.GetNamespace("MAPI") Set Folder = ns.GetDefaultFolder(olFolderInbox) Olook.Explorers.Add Folder 'faz o que tem que fazer Olook.Quit Set Olook = Nothing End Sub |
Estranhamente, criar a instância do “Outlook.Application” não suficiente, já que o método Show ou Visible não existem no objeto, da mesma forma que acontece quando manipulamos um “Excel.Application” ou mesmo “Word.Application”.
Na linha:
‘faz o que tem que fazer
É o código para manipular ou trabalhar com os objetos do Outlook, como a criação do email citada acima. O restante das linhas fecha o Outlook, e podem ser omitidas conforme a necessidade, o que manterá o Outlook aberto.
É importante frisar que o código não vai garantir a abertura do Outlook corretamente caso ele requisite credenciais ou senha de acesso, muito comum em redes empresariais.
Bom, está aí. Bom proveito!