Skip to main content

Como imprimir automaticamente anexos quando os emails chegarem no Outlook?

Author: Siluvia Last Modified: 2025-08-06

Este tutorial demonstra um método para combinar um script VBA e uma regra do Outlook para ajudá-lo a imprimir automaticamente os anexos de determinados emails assim que eles chegarem no Outlook.


Imprimir automaticamente anexos quando determinados emails chegarem

Suponha que você deseja imprimir automaticamente os anexos dos emails recebidos de um remetente específico. Você pode fazer o seguinte para realizar isso.

Passo 1: Criar um script no Outlook

Primeiro, você precisa criar um script VBA no Outlook.

1. Abra seu Outlook, pressione simultaneamente 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 Project1 > Microsoft Outlook Objects > ThisOutlookSession para abrir a janela ThisOutlookSession (Código), e depois copie o código a seguir para esta janela de código.

steps of auto printing attachments when emails arrive in Outlook

Código VBA 1: Imprimir automaticamente anexos (todos os tipos de anexos) quando os emails chegarem

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xTempFolder & "\" & xAtt.FileName
      xAtt.SaveAsFile (xFileName)
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

Observação: Este código suporta a impressão de todos os tipos de anexos recebidos nos emails. Se você quiser imprimir apenas um tipo específico de anexo, como arquivos pdf, aplique o seguinte código VBA.

Código VBA 2: Imprimir automaticamente o tipo especificado de anexos quando os emails chegarem

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileType As String, xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xAtt.FileName
      xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
      xFileName = xTempFolder & "\" & xFileName
      Select Case xFileType
        Case "pdf"   'change "pdf" to the file extension you want to print
          xAtt.SaveAsFile (xFileName)
          Set xFolderItem = xFolder.ParseName(xFileName)
          xFolderItem.InvokeVerbEx ("print")
      End Select
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
  Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

Observações:

1. Antes de aplicar este código VBA para imprimir apenas o arquivo pdf nos emails recebidos, primeiro você precisa baixar e instalar o Adobe Acrobat Reader e configurá-lo como o leitor de pdf padrão no seu computador.
2. Na linha Case "pdf", altere "pdf" para a extensão do arquivo que deseja imprimir.

3. Avance e clique em Ferramentas > Referências. No diálogo que aparece Referências – Project1, marque a caixa Microsoft Scripting Runtime e clique no botão OK.

steps of auto printing attachments when emails arrive in Outlook

4. Salve o código e pressione as teclas Alt + Q para fechar a janela Microsoft Visual Basic for Applications.

Observação: Certifique-se de que a opção Ativar todas as macros está habilitada no seu Outlook. Você pode verificar essa opção seguindo os passos mostrados abaixo.

steps of auto printing attachments when emails arrive in Outlook
Passo 2: Criar uma regra para usar o script

Depois de adicionar o script VBA no Outlook, você precisa criar uma regra para usar o script com base em certas condições.

1. Vá para a guia Início, clique em Regras > Gerenciar Regras e Alertas.

steps of auto printing attachments when emails arrive in Outlook

2. Na caixa de diálogo Regras e Alertas, clique no botão Nova Regra para criar uma regra.

Dica: Se você adicionou várias contas de email ao seu Outlook, especifique uma conta na lista suspensa Aplicar alterações a esta pasta onde deseja aplicar a regra. Caso contrário, ela será aplicada à caixa de entrada da conta de email selecionada atualmente.

steps of auto printing attachments when emails arrive in Outlook

3. No primeiro Assistente de Regras, selecione Aplicar regra nas mensagens que eu receber na Caixa 1, e depois clique em Próximo.

steps of auto printing attachments when emails arrive in Outlook

4. No segundo Assistente de Regras, você precisa:

4.1) Especificar uma ou mais condições na Etapa 1 de acordo com suas necessidades;
Neste caso, quero imprimir apenas os anexos nos emails recebidos de um remetente específico. Aqui, marco a caixa de pessoas ou grupo público.
4.2) Clique no valor sublinhado na Etapa 2 para editar a condição;
4.3) Clique em Próximo. Veja a captura de tela:
steps of auto printing attachments when emails arrive in Outlook

5. No terceiro Assistente de Regras, você precisa configurar conforme a seguir.

5.1) Na seção Etapa 1: Selecionar ações, marque a caixa executar um script;
5.2) Na seção Etapa 2, clique no texto sublinhado “um script”;
5.3) Na caixa de diálogo Selecionar Script que se abre, clique no nome do código VBA que você adicionou acima e depois clique em OK;
5.4) Clique no botão Próximo. Veja a captura de tela:
steps of auto printing attachments when emails arrive in Outlook

Dica: Se a opção “executar um script” estiver ausente no seu Assistente de Regras, você pode exibi-la seguindo o método mencionado neste artigo: restaurar a opção Executar Um Script faltante na regra do Outlook.

6. Depois disso, outro Assistente de Regras aparecerá perguntando por exceções. Você pode selecionar as exceções, se necessário, caso contrário, clique no botão Próximo sem fazer nenhuma seleção.

steps of auto printing attachments when emails arrive in Outlook

7. No último Assistente de Regras, você precisa especificar um nome para a regra e clicar no botão Finalizar.

steps of auto printing attachments when emails arrive in Outlook

8. Em seguida, ele retorna à caixa de diálogo Regras e Alertas, você verá a regra criada listada lá dentro, clique no botão OK para finalizar toda a configuração.

steps of auto printing attachments when emails arrive in Outlook

A partir de agora, quando um email da pessoa especificada for recebido, os arquivos anexados serão impressos automaticamente.


Artigos relacionados

Imprimir somente Anexos de um Email ou Emails Selecionados no Outlook
No Outlook, você pode imprimir os emails, mas já imprimiu apenas os anexos de um email ou emails selecionados no Outlook? Este artigo apresenta truques para resolver essa tarefa.

Imprimir somente o cabeçalho da mensagem de um email no Outlook
Ao imprimir um email no Outlook, ele imprimirá tanto o cabeçalho quanto o corpo da mensagem no email. No entanto, em alguns casos especiais, você pode precisar apenas imprimir o cabeçalho da mensagem com o assunto, remetente, destinatários, etc. Este artigo introduzirá duas soluções para fazer isso.

Imprimir um calendário em um intervalo de datas específico/personalizado no Outlook
Normalmente, ao imprimir um calendário na visualização Mensal no Outlook, ele selecionará automaticamente o mês que contém a data selecionada atualmente. No entanto, você pode precisar imprimir o calendário dentro de um intervalo de datas personalizado, como 3 meses, metade do ano, etc. Este artigo apresentará a solução para você.

Imprimir um contato com foto no Outlook
Normalmente, a foto de um contato não será impressa ao imprimir o contato no Outlook. Mas às vezes, pode ser mais impressionante imprimir um contato com sua foto. Este artigo apresentará algumas soluções alternativas para fazer isso.

Imprimir uma seleção de um email no Outlook
Se você recebeu uma mensagem de email e descobriu que há uma parte específica do conteúdo do email que precisa ser impressa em vez de imprimir toda a mensagem, o que você faria? Na verdade, o Outlook pode ajudá-lo a realizar essa operação com a ajuda de navegadores da internet, como o Firefox e o Internet Explorer. Aqui vou usar os navegadores da internet como exemplo. Por favor, veja os tutoriais a seguir.

Mais artigos sobre "impressão no Outlook"...


Melhores Ferramentas de Produtividade para Office

Notícia Urgente: 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 lidar com emails facilmente, incluindo responder, resumir, otimizar, expandir, traduzir e redigir emails.

📧 Automação de Email: Resposta automática (Disponível para POP e IMAP) / Agendar envio de emails / CC/BCC automático por regra ao enviar email / Encaminhamento automático (Regra avançada) / Adicionar saudação automaticamente / Dividir automaticamente emails com vários destinatários em mensagens individuais...

📨 Gerenciamento de Email: Recallar Email / Bloquear emails suspeitos por assunto e outros critérios / Excluir emails duplicados / Pesquisa Avançada / Organizar Pastas...

📁 Anexos Pro: Salvar em lote / Desanexar em lote / Comprimir em lote / Salvar automaticamente / Desanexar automaticamente / Auto Comprimir...

🌟 Interface Mágica: 😊Mais emojis bonitos e divertidos / Aviso de chegada de emails importantes / Minimizar Outlook em vez de fechar...

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

👩🏼‍🤝‍👩🏻 Contatos & Calendário: Adicionar contatos em lote a partir de emails selecionados / Dividir um grupo de contatos em grupos individuais / Remover lembrete de aniversário...

Use o Kutools no idioma que preferir – compatível com Inglês, Espanhol, Alemão, Francês, Chinês e mais de40 outros!

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

kutools for outlook features1 kutools for outlook features2