Às vezes, você pode querer compactar todos os anexos de um e-mail em um zip arquivo diretamente no Outlook. Nesse caso, você pode usar o código VBA apresentado neste artigo para obter esse recurso.
Por padrão, o Outlook tem seu limite de tamanho de anexo – 20 MB para POP3, IMAP ou outras contas de e-mail baseadas na Web e 10 MB para contas do Exchange. Portanto, quando o tamanho total dos anexos exceder o limite, você receberá erros relacionados. Nesse caso, é uma boa opção compactar todos os anexos em um zip arquivo.
No entanto, como você pode ver, o Outlook não oferece um recurso tão direto. Ou seja, você precisa primeiro zip esses arquivos no disco rígido e, em seguida, anexe novamente o recém-criado zip arquivo. Na realidade most os usuários esperam que possam alcançá-lo diretamente no Outlook. Em resposta a esse requisito, apresentaremos a seguir como usar o VBA para realizá-lo.
Compactar todos os anexos em um Zip Envie o
- Em primeiro lugar, inicie seu aplicativo Outlook.
- Em seguida, pressione os botões de tecla “Alt + F11” na janela principal do Outlook.
- Em seguida, na nova janela do editor VBA do Outlook, abra um módulo.
- Posteriormente, copie e cole os seguintes códigos VBA no módulo.
Sub ZipAttachments()
Dim objMail As Outlook.MailItem
Dim objAttachments As Outlook.attachments
Dim objAttachment As Outlook.Attachment
Dim objFileSystem As Object
Dim objShell As Object
Dim varTempFolder As Variant
Dim varZipFile As Variant
'Save the attachments to Temporary folder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
varTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp " & Format(Now, "dd-mm-yyyy- hh-mm-ss-")
MkDir (varTempFolder)
varTempFolder = varTempFolder & "\"
Set objMail = Outlook.Application.ActiveInspector.CurrentItem
Set objAttachments = objMail.attachments
For Each objAttachment In objAttachments
objAttachment.SaveAsFile (varTempFolder & objAttachment.FileName)
Next
'Create a new zip file
varZipFile = InputBox("Specify a name for the new zip file", "Name Zip File", objMail.Subject)
varZipFile = objFileSystem.GetSpecialFolder(2).Path & "\" & varZipFile & ".zip"
Open varZipFile For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
'Copy all the saved attachments to the new zip file
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(varZipFile).CopyHere objShell.NameSpace(varTempFolder).Items
'Keep macro running until Compressing is done
On Error Resume Next
Do Until objShell.NameSpace(varZipFile).Items.Count = objShell.NameSpace(varTempFolder).Items.Count
Application.Wait (Now + TimeValue("0:00:01"))
Loop
On Error GoTo 0
'Delete all the attachments
Set objAttachments = objMail.attachments
While objAttachments.Count > 0
objAttachments.Item(1).Delete
Wend
'Add the new zip file to the current email
objMail.attachments.Add varZipFile
'Prompt
MsgBox ("Complete!")
End Sub
- Depois disso, você precisa verificar as configurações de macro do Outlook para garantir que a macro seja permitida.
- Mais tarde, você pode adicionar o novo projeto VBA à barra de ferramentas de acesso rápido da janela de mensagem como de costume.
- Eventualmente, você pode tentar.
- Em primeiro lugar, crie um novo e-mail e anexe vários arquivos. Ou simplesmente abra um e-mail com muitos anexos.
- Em seguida, clique no botão de macro na Barra de Ferramentas de Acesso Rápido.
- Mais tarde, você precisa especificar um nome para o zip arquivo e clique em "OK". Por padrão, será definido como o assunto do e-mail.
- De uma só vez, todos os anexos serão compactados em um zip arquivo, como a captura de tela a seguir:
Unzip a .Zip Anexos diretamente no Outlook
É inevitável que você receba anexos com extensão “.zip” extensão de arquivo de vez em quando. Neste cenário, você pode querer desconectar diretamentezip esses arquivos de dentro do Outlook em vez de salvá-los e descompactá-los na unidade local. Mesmo que o Outlook não tenha um recurso nativo, você ainda pode usar o VBA para obtê-lo também. Para mais detalhes, você pode consultar outro artigo – “como desfazerzip a .Zip Anexos diretamente no Outlook via VBA".
Introdução do autor:
Shirley Zhang é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo correção de sql e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com



