KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como enviar automaticamente uma mensagem de saudação a um contacto cujo aniversário seja hoje no Outlook?

AutorXiaoyang Data de Modificação

Por vezes, poderá querer enviar automaticamente uma mensagem de saudação a um contacto no dia do seu aniversário no Outlook. Verificar manualmente o aniversário de cada contacto e enviar individualmente os e-mails de felicitação pode tornar-se uma tarefa tediosa. Neste artigo, apresento-lhe um código VBA que resolve esta questão de forma rápida e fácil.

Enviar automaticamente uma mensagem de saudação a um contacto com base no seu aniversário utilizando código VBA no Outlook


Enviar automaticamente uma mensagem de saudação a um contacto com base no seu aniversário utilizando código VBA no Outlook

Para enviar automaticamente uma mensagem de saudação a um contacto no dia do seu aniversário, insira primeiro o código VBA e, em seguida, configure uma tarefa recorrente para ativar esse código.

Os passos seguintes poderão ajudá-lo:

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

2. Na janela do Microsoft Visual Basic for Applications, faça duplo clique em ThisOutlookSession no painel Project1 (VbaProject.OTM) para abrir o módulo e, em seguida, copie e cole o código seguinte no módulo em branco.

Código VBA: Enviar automaticamente uma mensagem de saudação a um contacto 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 
a captura de ecrã do passo sobre como utilizar VBA para enviar automaticamente uma mensagem de saudação a um contacto se o seu aniversário for hoje no Outlook 1

3. Em seguida, clique em Ferramentas > Referências na janela do Microsoft Visual Basic for Applications. Na caixa de diálogo Referências – Project1 que surge, marque as opções Microsoft Word Object Library e Microsoft Scripting Runtime na lista Referências Disponíveis, conforme mostra a imagem:

4. Em seguida, clique em OK para fechar a caixa de diálogo. Agora, deverá criar uma tarefa para ativar o código VBA. Aceda ao painel Tarefas e clique em Tarefa para criar uma tarefa:

(1.) Na linha Assunto, introduza como assunto Enviar E-mail de Felicitação de Aniversário;

(2.) Em seguida, clique em Recorrênciano separador Tarefa;

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

5. Em seguida, clique em OK para fechar a caixa de diálogo. Regresse à janela da tarefa e defina um lembrete para a tarefa recorrente, tal como mostrado na imagem seguinte:

6. A partir de agora, sempre que o lembrete surgir, a macro será ativada imediatamente. Irá aparecer uma caixa de diálogo a lembrá-lo para inserir as mensagens de felicitação de aniversário, tal como mostrado na imagem seguinte:

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


Melhores Ferramentas de Produtividade para o Office

Experimente o totalmente novo Kutools para Outlook com 100+ funcionalidades incríveis!Clique para transferir já!

🤖KUTOOLS AI:Utiliza tecnologia avançada de IA para gerir e-mails sem esforço, incluindo responder, resumir, otimizar, alongar, traduzir e redigir mensagens.

📧Automação de E-mails: Resposta Automática (disponível para POP e IMAP) / Agendar Envio de E-mails / CC/BCC Automático por Regras ao Enviar E-mail / Encaminhamento Automático (regra avançada) / Adicionar Saudação Automaticamente / Dividir Automaticamente E-mails com Múltiplos Destinatários em Mensagens Individuais...

📨Gestão de E-mails: Recallar e-mail / Bloquear e-mails fraudulentos por assunto e outros critérios / Eliminar e-mails duplicados / Pesquisa avançada / Organizar pastas...

📁Anexos Pro: Guardar em Lote / Desanexar em Lote / Comprimir em Lote / Salvar Automaticamente / Desanexar Automaticamente / Auto Comprimir...

🌟Magia da Interface: 😊 Mais Emojis Bonitos e Divertidos / Avisa-o quando chegam e-mails importantes / Minimizar o Outlook em vez de fechá-lo...

👍Maravilhas com um Clique: Responder a Todos com Anexos / E-mails Anti-Phishing / 🕘 Mostrar Fuso Horário – Hora Atual do Remetente...

👩🏼‍🤝‍👩🏻Contactos e Calendário: Criar contactos em lote a partir de e-mails selecionados / Dividir um grupo de contactos em grupos individuais / Remover lembrete de aniversário...

Utilize o Kutools no seu idioma preferido – com suporte para inglês, espanhol, alemão, francês, chinês e mais de 40 idiomas!

Desbloqueie instantaneamente o Kutools para Outlook com um único clique! Não espere mais — transfira já e aumente a sua eficiência!

kutools for outlook funcionalidades1kutools for outlook funcionalidades2

🚀 Transferência com um Clique — Obtenha Todos os Extras do Office

Altamente Recomendado: Kutools for Office (5 em 1)

Um clique para transferir cinco instaladoresde uma só vez —Kutools para Excel, Outlook, Word, PowerPointe Office Tab Pro.Clique para transferir já!

  • Conveniência com um clique: Transfira os cinco pacotes de instalação numa única ação.
  • 🚀Pronto para qualquer tarefa no Office: instale os extras que precisa, exatamente quando os precisar.
  • 🧰Incluídos: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools for PowerPoint