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

Como guardar anexos no Outlook sem abrir o e-mail?

AutoraSiluvia Data de Modificação

Poderá frequentemente precisar de guardar anexos de e-mails recebidos no disco do seu computador. Guardar um único anexo ou todos os anexos de uma mensagem é fácil — mas e quando precisa de guardar anexos de vários e-mails de uma só vez? Normalmente, teria de abrir cada e-mail repetidamente e guardar manualmente os respetivos anexos. Será que existe uma forma de evitar estas tarefas repetitivas? Os métodos apresentados neste tutorial podem ajudá-lo.

Guardar anexos de um ou mais e-mails sem abrir, com código VBA
Guardar anexos de um ou mais e-mails sem abrir, com uma ferramenta incrível


Guardar anexos de um ou mais e-mails sem abrir, com código VBA

O seguinte código VBA permite-lhe guardar anexos de um ou mais e-mails em simultâneo, sem precisar de abrir as mensagens no Outlook. Siga os passos indicados.

1. Selecione um ou vários e-mails cujos anexos pretende guardar e prima as teclas Alt+F11 para abrir a janela do Microsoft Visual Basic for Applications.

2. Expanda a pasta Objetos do Microsoft Outlook, clique duas vezes em ThisOutlookSession para abrir a janela de Código e copie o seguinte código VBA para dentro dela.

guardar anexos com VBA 1

Código VBA: Guardar anexos sem abrir os e-mails

Public Sub SaveAttachmentsWithoutOpening()
'Updated by Extendoffice 20191008
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim i As Long
Dim xCount As Long
Dim xFileName As String
Dim xSavePath As String
Dim xOriginalFiles As String
On Error Resume Next
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.BrowseForFolder(0, "Select a folder:", 0, strStartingFolder)
If Not TypeName(xFolder) = "Nothing" Then
    Set xFolderItem = xFolder.self
    xSavePath = xFolderItem.Path & "\"
Else
    xFileName = ""
    Exit Sub
End If
For Each xMailItem In Outlook.ActiveExplorer.Selection
    Set xAttachments = xMailItem.Attachments
    xCount = xAttachments.Count
    xOriginalFiles = ""
    If xCount > 0 Then
        For i = xCount To 1 Step -1
            Set xAttachment = xAttachments.Item(i)
            If IsEmbeddedAttachment(xAttachment) = False Then
                xFileName = xSavePath & xAttachment.FileName
                xAttachment.SaveAsFile xFileName
                xAttachment.Delete
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xOriginalFiles = xOriginalFiles & vbCrLf & "file://" & xFileName
                Else
                    xOriginalFiles = xOriginalFiles & "<br>" & "<a href='file://" & xFileName & "'>" & xFileName & "</a>"
                End If
            End If
        Next i
        If xMailItem.BodyFormat <> olFormatHTML Then
            xMailItem.Body = "The file(s) were saved to " & xOriginalFiles & vbCrLf & vbCrLf & xMailItem.Body
        Else
            xMailItem.HTMLBody = "<p>" & "The file(s) were saved to " & xOriginalFiles & "</p>" & xMailItem.HTMLBody
        End If
        xMailItem.Save
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
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

4. Prima a tecla F5 para executar o código. Em seguida, aparece uma janela BrowseForFolder. Por favor, selecione uma pasta para guardar os anexos e, de seguida, clique no botão OK.

De imediato, todos os anexos dos e-mails selecionados são guardados na pasta escolhida.

Nota: Todos os anexos serão destacados dos e-mails e mantidos como hiperligações para o respetivo caminho de guarda no corpo do e-mail.

guardar anexos com VBA 2

Guardar anexos de um ou mais e-mails sem abrir, com uma ferramenta incrível

Se é novo na utilização de VBA, o método nesta secção será uma excelente opção para si.

Recomendamos-lhe aqui a funcionalidade Guardar Todos os Anexos do Kutools para Outlook. Se pretender guardar apenas os anexos sem os destacar dos e-mails selecionados, a funcionalidade Guardar Todos os Anexos ajuda-o facilmente a concretizar essa tarefa. Siga os passos indicados.
Antes de utilizar o Kutools para Outlook, por favor transfira e instale-o primeiro.

Diga adeus à ineficiência no Outlook! O Kutools para Outlook torna o processamento em lote de e-mails mais fácil – e agora inclui uma avaliação gratuita de 30 dias!Descarregue já o Kutools para Outlook!!

1. Selecione os e-mails que contêm os anexos que pretende guardar e clique em KUTOOLS PLUS > Ferramentas de Anexo > Guardar Todos.

2. Na caixa de diálogo Configurações de salvamento, deverá:

  • 2,1) Na secção Salvar anexos nesta pasta, escolha uma pasta para guardar os anexos;
  • 2,2) A caixa Salvar anexos com o seguinte estilo é opcional, permitindo-lhe criar uma subpasta com um determinado estilo para guardar os anexos ou renomear os anexos guardados segundo esse mesmo estilo.
  • 2,3) Clique em OK para começar a guardar todos os anexos dos e-mails selecionados.

Dicas: Com as configurações indicadas acima, todos os anexos serão guardados na pasta especificada. Se pretender guardar apenas determinados anexos — por exemplo, apenas ficheiros PDF cujo nome contenha a palavra «invoice» — pode configurar as Condições de Filtro da seguinte forma.

  • Clique no botão Opções avançadaspara expandir as condições de filtro;
  • Especifique as condições de acordo com as suas necessidades.
    Dicas: Neste exemplo, marco a caixa Nome do Anexo contém e introduzo «invoice» na caixa de texto; depois, marco a caixa O tipo do anexo é e introduzo «.pdf» na caixa de texto.
guardar anexos com kutools 2

3. Na caixa de diálogo seguinte que surge, clique em Sim para continuar.

Os anexos dos e-mails selecionados são imediatamente guardados na pasta especificada.

Dicas: Para destacar os anexos dos e-mails selecionados e deixar apenas hiperligações para os mesmos no corpo da mensagem, a funcionalidade Destacar Todos os Anexos pode ajudar.


Artigos relacionados

Transferir/guardar automaticamente anexos do Outlook para uma pasta específica
De um modo geral, pode guardar todos os anexos de um e-mail ao clicar em Anexos > Guardar Todos os Anexos no Outlook. Contudo, se precisar de guardar automaticamente todos os anexos de todos os e-mails recebidos, sabe como fazer? Este artigo apresenta duas soluções para transferir automaticamente anexos do Outlook para uma pasta específica.

Manter anexos ao responder no Outlook
Quando reencaminha uma mensagem de e-mail no Microsoft Outlook, os anexos originais são mantidos automaticamente na mensagem reencaminhada. Já ao responder a uma mensagem, o Outlook não inclui os anexos originais por predefinição. Neste artigo, revelamos algumas dicas práticas para manter os anexos originais sempre que responder no Microsoft Outlook.

Pesquisar palavras dentro do anexo (conteúdo) no Outlook
Quando digita uma palavra-chave na caixa de Pesquisa Instantânea do Outlook, esta procura a palavra nos assuntos, corpos e anexos das mensagens, entre outros locais. Mas e se precisar de encontrar essa palavra exclusivamente no conteúdo dos anexos? Este artigo mostra-lhe, passo a passo, como pesquisar facilmente palavras dentro dos anexos no Outlook.