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

Como configurar o Outlook para imprimir automaticamente os anexos assim que as mensagens forem recebidas?

AutorSiluvia Data de Modificação

Este tutorial apresenta um método que combina um script VBA com uma regra do Outlook para imprimir automaticamente os anexos de determinadas mensagens assim que estas chegam à sua caixa de entrada.


Imprimir automaticamente anexos quando determinadas mensagens chegarem

Imagine que pretende imprimir automaticamente os anexos das mensagens recebidas de um determinado remetente. Basta seguir os passos abaixo para o conseguir.

Passo 1: Criar um script no Outlook

Em primeiro lugar, precisa de criar um script VBA no Outlook.

1. Inicie o seu Outlook e prima simultaneamente as teclas Alt+F11 para abrir a janela Microsoft Visual Basic for Applications.

2. Na janela Microsoft Visual Basic for Applications, faça duplo clique em Project1 > Objetos do Microsoft Outlook > ThisOutlookSession para abrir a janela ThisOutlookSession (Código) e copie o código seguinte para esta janela de código.

passos para impressão automática de anexos quando os e-mails chegam no Outlook

Código VBA 1: Imprimir automaticamente anexos (todos os tipos de anexos) quando as mensagens 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

Nota: Este código permite imprimir todos os tipos de anexos recebidos nas mensagens. Se pretender imprimir apenas um tipo específico de anexo, como ficheiros PDF, utilize o seguinte código VBA.

Código VBA 2: Imprimir automaticamente o tipo especificado de anexos quando as mensagens 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

Notas:

1. Antes de aplicar este código VBA para imprimir apenas os Arquivos PDF nas mensagens recebidas, primeiro precisa de transferir e instalar o Adobe Acrobat Readere defini-lo como leitor PDF predefinido no seu computador.
2. Na linha Case «pdf», altere «pdf»para a extensão do ficheiro que pretende imprimir.

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

passos para impressão automática de anexos quando os e-mails chegam no Outlook

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

Nota: Certifique-se de que a opção Ativar todas as macros está ativada no seu Outlook. Pode verificar esta opção seguindo os passos indicados abaixo.

passos para impressão automática de anexos quando os e-mails chegam no Outlook
Passo 2: Criar uma regra para utilizar o script

Após adicionar o script VBA no Outlook, terá de criar uma regra para utilizar esse script com base em determinadas condições.

1. Aceda ao separador Base e clique em Regras > Gerir Regras e Alertas.

passos para impressão automática de anexos quando os e-mails chegam no Outlook

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

Dicas: Se tiver adicionado várias contas de e-mail ao seu Outlook, especifique uma conta na lista suspensa Aplicar alterações a esta pasta para indicar onde pretende aplicar a regra. Caso contrário, esta será aplicada à caixa de entrada da conta atualmente em uso.

passos para impressão automática de anexos quando os e-mails chegam no Outlook

3. Na primeira caixa de diálogo Assistente de Regras, selecione Aplicar regra às mensagens que eu receber na caixa Passo 1 e clique em Seguinte.

passos para impressão automática de anexos quando os e-mails chegam no Outlook

4. Na segunda caixa de diálogo Assistente de Regras, precisa de:

4,1) Especifique uma ou mais condições na caixa Passo 1de acordo com as suas necessidades;
Neste caso, pretendo imprimir apenas os anexos das mensagens recebidas de um remetente específico. Aqui, marco a caixa de pessoas ou grupo público.
4,2) Clique no valor sublinhado na caixa Passo 2para editar a condição;
4,3) Clique em Seguinte.Veja a imagem:
passos para impressão automática de anexos quando os e-mails chegam no Outlook

5. Na terceira caixa de diálogo Assistente de Regras, configure da seguinte forma.

5,1) No Passo 1: secção Selecionar ação(ões), marque a caixa de seleção executar um script;
5,2) Na Passo 2secção, clique no texto sublinhado «um script»;
5,3) Na caixa de diálogo Selecionar Scriptque se abre, clique no nome do código VBA que adicionou acima e, em seguida, clique em OK;
5,4) Clique no botão Seguinte. Veja a captura de ecrã:
passos para impressão automática de anexos quando os e-mails chegam no Outlook

Dicas: Se a opção “executar um script” não estiver visível na sua caixa de diálogo Assistente de Regras, pode exibi-la seguindo o método descrito neste artigo: restaurar a opção 'Executar um Script' em falta na regra do Outlook.

6. Em seguida, surge outra caixa de diálogo Assistente de Regras a solicitar exceções. Pode selecionar exceções, se necessário; caso contrário, clique no botão Seguinte sem efetuar qualquer seleção.

passos para impressão automática de anexos quando os e-mails chegam no Outlook

7. Na última caixa de diálogo Assistente de Regras, deverá atribuir um nome à regra e, em seguida, clicar no botão Concluir.

passos para impressão automática de anexos quando os e-mails chegam no Outlook

8. Depois, regresse à caixa de diálogo Regras e Alertas, onde verá a regra criada listada; clique no botão OK para concluir todas as definições.

passos para impressão automática de anexos quando os e-mails chegam no Outlook

A partir de agora, sempre que for recebida uma mensagem da pessoa especificada, o anexo será impresso automaticamente.


Artigos relacionados

Imprimir Apenas o(s) Anexo(s) de Uma Mensagem ou de Mensagens Selecionadas no Outlook
No Outlook, é possível imprimir mensagens — mas já imprimiu apenas os anexos de uma mensagem ou de mensagens selecionadas? Este artigo revela truques práticos para resolver esta tarefa.

Imprimir Apenas o Cabeçalho de Uma Mensagem no Outlook
Ao imprimir uma mensagem no Outlook, tanto o cabeçalho como o corpo da mensagem são impressos. Contudo, em determinadas situações, poderá precisar apenas do cabeçalho — com o assunto, remetente, destinatários, entre outros. Este artigo apresenta duas soluções para o conseguir.

Imprimir um calendário num intervalo de datas personalizado no Outlook
Normalmente, ao imprimir um calendário na vista Mensal do Outlook, é automaticamente selecionado o mês que contém a data atual. No entanto, poderá precisar de imprimir o calendário num intervalo de datas personalizado — por exemplo, 3 meses, meio ano ou outro período à sua escolha. Este artigo mostra-lhe como fazê-lo.

Imprimir um Contacto com Fotografia no Outlook
Normalmente, a fotografia de um contacto não é incluída ao imprimi-lo no Outlook. Contudo, em certas situações, imprimir o contacto com a sua fotografia pode ter um impacto muito maior. Este artigo apresenta algumas soluções alternativas para o conseguir.

Imprimir uma Seleção de Uma Mensagem no Outlook
Recebeu uma mensagem e reparou que só precisa de imprimir uma parte do conteúdo, em vez da mensagem completa? Na realidade, o Outlook permite-lhe fazer exatamente isso com a ajuda de navegadores web como o Firefox e o Internet Explorer. Neste guia, usaremos esses navegadores como exemplo — siga os tutoriais abaixo.

Mais artigos sobre «impressão no Outlook»...


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 features1kutools for outlook features2

🚀 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