domingo, 28 de abril de 2013

Desanexando arquivos de uma pasta do Outlook

Escrevi este código para desanexar arquivos dos e-mails de uma pasta (que aqui vou chama-la de "Pasta a ser lida") com a condição de que o e-mail esteja marcado como "não lido". Utilizo o código para automação de um processo em que preciso processar vários arquivos do tipo texto (*.txt) em determinado horário da noite. ;-)
Option Compare Database
Option Explicit

Dim olapp           As New Outlook.Application
Dim pasta           As Outlook.Folder
Dim item            As Outlook.MailItem
Dim i               As Integer
Dim arq_anexo       As Outlook.Attachment
Dim repositorio     As String
    
    
Public Sub desanexa()

    'Define a pasta a ser lida
    Set pasta = olapp.GetNamespace("MAPI").Folders("Caixa de correio - Paulo K. Todoroki").Folders("Pasta a ser lida")
    
    For i = 1 To pasta.Items.Count
        DoEvents
        'Se a mensagem for do tipo E-MAIL  e marcada como NÃO LIDA
        If pasta.Items(i).Class = olMail And pasta.Items(i).UnRead = True Then
            'Para cada anexo da mensagem
            'Necessário o loop porque o primeiro anexo pode ser uma imagem com a assinatura
            For Each arq_anexo In pasta.Items(i).Attachments
                DoEvents
                arq_anexo.SaveAsFile "C:\Arquivos\" & arq_anexo.FileName
            Next arq_anexo
        End If
        
        'Marcar a mensagem como lida
        pasta.Items(i).UnRead = False
        
    Next
    
End Sub

Nenhum comentário:

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.