Como configurar o Outlook para imprimir automaticamente os anexos assim que as mensagens forem recebidas?
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.

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:
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.

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.

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.

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.

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.

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

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

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.

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

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.

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.
Melhores Ferramentas de Produtividade para o Office
Experimente o totalmente novo Kutools para Outlook com 100+ funcionalidades incríveis!Clique para transferir já!
📧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!


🚀 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