Skip to main content

Kutools para Office — Uma Suíte. Cinco Ferramentas. Aumente sua Produtividade.

 Como enviar automaticamente uma mensagem de saudação para um contato se o aniversário dele for hoje no Outlook?

Author Xiaoyang Last modified

Às vezes, você pode querer enviar automaticamente uma mensagem de saudação para o contato quando o aniversário dele for hoje no Outlook. Será uma tarefa tediosa verificar o aniversário de cada contato um por um e enviar os e-mails de saudação manualmente. Neste artigo, vou apresentar um código VBA para resolver isso de forma rápida e fácil.

Enviar automaticamente uma mensagem de saudação para um contato com base no aniversário usando código VBA no Outlook


Enviar automaticamente uma mensagem de saudação para um contato com base no aniversário usando código VBA no Outlook

Para enviar automaticamente uma mensagem de saudação para um contato se o aniversário dele for hoje, insira primeiro um código VBA, depois você precisa criar uma tarefa recorrente para acionar o código.

Os seguintes passos podem ajudá-lo:

1. Inicie o Outlook e, em seguida, mantenha pressionadas as teclas ALT + F11 para abrir a janela Microsoft Visual Basic for Applications.

2. Na janela Microsoft Visual Basic for Applications, clique duas vezes em ThisOutlookSession no painel Project1(VbaProject.OTM) para abrir o modo, e depois copie e cole o seguinte código no módulo em branco.

Código VBA: Enviar automaticamente uma mensagem de saudação para um contato com base no aniversário:

Private Sub Application_Reminder(ByVal Item As Object)
Dim xTempMail As MailItem
Dim xFilePath As String
Dim xItems As Outlook.Items
Dim xItem As Object
Dim xContactItem As Outlook.ContactItem
Dim xTodayDate As String
Dim xBirthdayDate As String
Dim xGreetingMail As Outlook.MailItem
Dim xWordDoc As Word.Document
Dim xGreetings As String
Dim xBool As Boolean
xFilePath = CreateObject("shell.Application").NameSpace(5).self.Path & "\UserTemplates"
Set xFSO = CreateObject("Scripting.FileSystemObject")
If xFSO.FolderExists(xFilePath) = False Then
    MkDir xFilePath
End If
If IsFileExists(xFilePath & "\Birthday Greeting Mail.oft") = False Then
    Set xTempMail = Outlook.CreateItem(olMailItem)
    xTempMail.SaveAs xFilePath & "\Birthday Greeting Mail.oft", olTemplate
    xTempMail.Close olDiscard
End If
If (TypeOf Item Is TaskItem) And (Item.Subject = "Send Birthday Greeting Mail") Then
xGreetings = "Happy Birthday!"
           xGreetings = InputBox("Input birthday greetings", "Kutools for Outlook", xGreetings)
   xTodayDate = Month(Date) & "-" & Day(Date)
   Set xItems = Outlook.Application.Session.GetDefaultFolder(olFolderContacts).Items
   For Each xItem In xItems
       If Not (TypeOf xItem Is ContactItem) Then Exit Sub
       Set xContactItem = xItem
       xBirthdayDate = Month(xContactItem.Birthday) & "-" & Day(xContactItem.Birthday)
       If xBirthdayDate = xTodayDate Then
           Set xGreetingMail = Outlook.Application.CreateItemFromTemplate(xFilePath & "\Birthday Greeting Mail.oft")
           Set xWordDoc = xGreetingMail.GetInspector.WordEditor
           
           xWordDoc.Range.InsertBefore "Dear " & xContactItem.LastName & Chr(10) & xGreetings & Chr(10) & Chr(10)
           With xGreetingMail
                .Recipients.Add (xContactItem.Email1Address)
                .Subject = "Happy Birthday!"
                .Display
                .Close (olSave)
                .Send
          End With
       End If
   Next
End If
End Sub
Function IsFileExists(ByVal FileName As String) As Boolean
Dim xFileSystem As Object
Set xFileSystem = CreateObject("Scripting.FileSystemObject")
If xFileSystem.FileExists(FileName) = True Then
    IsFileExists = True
Else
    IsFileExists = False
End If
End Function 
the screenshot of step about using vba to send a greeting message to a contact automatically if his birthday is today in Outlook 1

3. Em seguida, clique em Ferramentas > Referências na janela Microsoft Visual Basic for Applications, na caixa de diálogo Referências-Project1 que apareceu, marque as opções Microsoft Word Object Library e Microsoft Scripting Runtime da lista de Referências Disponíveis, veja a captura de tela:

4. Em seguida, clique em OK para fechar a caixa de diálogo, agora você deve criar uma tarefa para acionar o código VBA. Por favor, vá para o Painel de Tarefas, clique em Nova Tarefa para criar uma tarefa:

(1.) Na linha Assunto, você deve inserir como Assunto Enviar E-mail de Saudação de Aniversário;

(2.) Em seguida, clique em Recorrência sob a aba Tarefa;

(3.) Na caixa de diálogo Recorrência da Tarefa, selecione Diariamente e especifique a opção a cada 1 dia(s) na seção Padrão de Recorrência;

5. Em seguida, clique em OK para fechar a caixa de diálogo, retorne à janela de tarefas, por favor, defina um lembrete para a tarefa recorrente conforme mostrado na captura de tela a seguir:

6. A partir de agora, quando o lembrete alertar, a macro será acionada imediatamente. Uma caixa de diálogo aparecerá para lembrá-lo de inserir as saudações de aniversário conforme mostrado na captura de tela a seguir:

7. Em seguida, clique no botão OK, um e-mail de saudação será enviado automaticamente ao contato cujo aniversário é hoje.


Melhores Ferramentas de Produtividade para Office

Notícia de Última Hora: Kutools para Outlook Lança Versão Gratuita!

Experimente o novo Kutools para Outlook com mais de100 recursos incríveis! Clique para baixar agora!

🤖 Kutools AI : Utiliza tecnologia avançada de IA para gerenciar e-mails com facilidade, incluindo responder, resumir, otimizar, estender, traduzir e criar e-mails.

📧 Automação de E-mail: Resposta automática (Disponível para POP e IMAP)  /  Agendar Enviar Email  /  CC/BCC automático por Regra ao Enviar Email  /  Encaminhamento automático (Regra avançada)   /  Adicionar Saudação automaticamente   /  Dividir automaticamente Emails com múltiplos destinatários em Email individuais ...

📨 Gerenciamento de Email: Recallar Email  /  Bloquear emails fraudulentos por Assunto e outros critérios  /  Excluir Duplicado  /  Pesquisa Avançada  /  Organizar Pastas ...

📁 Anexos ProSalvar em Lote  /  Desanexar em Lote  /  Comprimir em Lote  /  Salvar automaticamente   /  Desanexar automaticamente  /  Auto Comprimir ...

🌟 Magia da Interface: 😊Mais emojis bonitos e legais   /  Notificações de emails importantes  /  Minimizar Outlook em vez de fechar ...

👍 Recursos de um clique: Responder a Todos com Anexos  /   Emails Anti-Phishing  /  🕘Exibir o fuso horário do remetente ...

👩🏼‍🤝‍👩🏻 Contatos e Calendário: Adicionar contato em lote dos Email selecionados  /  Dividir um Grupo de Contatos em grupos individuais  /  Remover lembrete de aniversário ...

Utilize o Kutools no idioma que preferir — disponível em Inglês, Espanhol, Alemão, Francês, Chinês e mais de40 outros!

Desbloqueie instantaneamente o Kutools para Outlook com um único clique. Não espere, baixe agora e aumente sua eficiência!

kutools for outlook features1 kutools for outlook features2

🚀 Download com um clique — Baixe todos os complementos de Office

Recomendado fortemente: Kutools para Office (5 em1)

Um clique para baixar cinco instaladores de uma vez — Kutools para Excel, Outlook, Word, PowerPoint e Office Tab Pro. Clique para baixar agora!

  • Comodidade em um clique: Baixe todos os cinco pacotes de instalação em uma única ação.
  • 🚀 Pronto para qualquer tarefa no Office: Instale os complementos que você precisa, quando precisar.
  • 🧰 Inclui: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools para PowerPoint