4
respostas

VBA no Novo Outlook

A Microsoft disponibilizou um "Novo Outlook":

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porém tenho reparado que os códigos VBA tem problemas para rodar nesse "Novo Outlook", para quem tem também o outlook clássico instalado na máquina até dá para usar esse código que achei na internet que dá erro ao tentar criar objeto com o "Novo Outlook", mas na sequência é "forçado" a criar objeto com o outlook clássico:

Dim objOutlook As Object

On Error Resume Next
Set objOutlook = CreateObject("Outlook.Application")
On Error GoTo 0
If Err.Number <> 0 Then
    Set objOutlook = CreateObject("Outlook.Application")
End If

Quanto ao "Novo Outlook", não achei nada que possa utilizar VBA nele, então acredito que pessoas que não tem instalado o outlook clássico não conseguem utilizar VBA no "Novo Outlook", estou errado?

Tem alguma solução para poder utilizar VBA com o "Novo Outlook" (já pensando nas pessoas que não tem o outlook clássico instalado?

4 respostas

Oii, William! Como você está?

Esses probelmas ao rodar o código VBA, é decido à compatibilidade entre o VBA e arquitetura do novo Outlook. O VBA foi projetado para lidar melhor com o Outlook tradicional.

E, infelizmente, não temos uma solução direta para usar o VBA com o novo Outlook. A Microsoft tem incentivado os desenvolvedores a migrar para soluções cada vez mais modernas como o uso da API do Microsoft Graph.

Caso a pessoa estudante não tenha o Outlook clássico instaldo, ela pode optar por usar a API mencionada anteriomente. Outra alternativa é a Automação via Power Automate: O Power Automate (anteriormente Microsoft Flow) permite criar fluxos de trabalho automatizados que podem interagir com o Outlook e outros serviços do Microsoft 365. Isso pode substituir algumas funcionalidades que você teria implementado com VBA.

Deixo aqui alguns links para estudos sobre o tema:

Espero ter esclarecido sua dúvida. Conte sempre conosco aqui no fórum.

Bons estudos, William!

E como seria utilizar a API da Microsoft Graph para envio de e-mails usando VBA?

Oii, William!

Você precisará seguir alguns passos, incluindo a configuração do ambiente, obtenção de tokens de autenticação, e a chamada da API.

Primeiramente, é preciso fazer uma conta no aplicativo Azure AD e seguir as recomendações para criar um segredo de cliente e salvar o valor que foi gerado. Depois, é preciso configurar um endpoint de token para fazer uma requisição HTTP para obter tokens de autenticação para acesso. Com esse token e a requisição HTTP criada, utilize o VBA para criar o e-mail. Crie o código do e-mail em JSON e envie a requisição.

A configuração desse ambiente vai ser de acordo com as necessidades do seu projeto. Então, teste bastante para obter o resultado que espera.

Para te auxiliar nos estudos, segue alguns artigos relacionados:

Espero que a sugestão seja um bom ponto de partida para você!

Bons estudos, William!

Poderia por favor passar um exemplo de código VBA que utilize essa API para envio de e-mails?