Avatar billede zitzo Nybegynder
01. juli 2005 - 10:41 Der er 2 kommentarer og
1 løsning

Outlook macro, kopiering af email attachment

Hej

Jeg er igang med at lave en macro til Outlook.
Jeg er stadig grøn i VB så mit problem er lidt uoverskueligt må jeg indrømme.

Macroen skal kopiere alle attachments over i en specifik mappe som den finde ud emailens subject.

Det fungere sådan set... men kun halvt da ikke alle filer bliver sendt over.. men kun omkring halvdelen.

Som test bruger jeg nogen emails der har subject 280xx

Kode:
Sub AttSaver()
    Dim oApp As Application
    Dim oNS As NameSpace
    Dim oMsg As Object
    Dim oAttachments As Outlook.Attachments
    Dim strControl
    Dim iSubject
    Dim tu
    Dim hu
    Dim i As Integer
           
    Set oApp = New Outlook.Application
    Set oNS = oApp.GetNamespace("MAPI")
    Set oFolder = oNS.GetDefaultFolder(olFolderInbox)
    strControl = 0
   
    For Each oMsg In oFolder.Items
        With oMsg
            iSubject = .Subject
            If Val(iSubject) > 7999 Then
                For Each Item In oMsg.Attachments
                    tu = Left(iSubject, 2)
                    hu = Left(iSubject, 3)
                    With Item
                        .SaveAsFile "C:\" & tu & "000-" & tu & "999\" & hu & "00-" & hu & "99\" & iSubject & "\org\" & .FileName
                        .Delete
                    End With
                Next
            End If
        End With
    Next
End Sub

Er der nogen der måske kan vise mig en anden løsning... eller komme med en aller anden mangel i koden er måske kan være årsagen til at ikke sender alle attached filer over...
Avatar billede zitzo Nybegynder
01. juli 2005 - 11:45 #1
er der ikke nogen herinde idag?... det er jo også lige evd at være ferie.. well anyways det ville være max nice hvis jeg fandt en løsning idag så jeg kan blive færdig med det inden ferien :)
Avatar billede zitzo Nybegynder
01. juli 2005 - 12:19 #2
Så er der hul igennem... Men den sletter kun de attachments der er i den mail man har markeret når man trykker på macroen. Den kopierer alle attachments i alle mails der har et korrekt subject, men glemmer at slette dem... hmmm
Sub AttSaver()
    Dim oApp As Application
    Dim oNS As NameSpace
    Dim oMsg As Object
    Dim oAttachments As Outlook.Attachments
    Dim strControl
    Dim iSubject
    Dim tu
    Dim hu
    Dim i As Integer
    Dim iAttachCnt As Integer
           
    Set oApp = New Outlook.Application
    Set oNS = oApp.GetNamespace("MAPI")
    Set oFolder = oNS.GetDefaultFolder(olFolderInbox)
       
    For Each oMsg In oFolder.Items
        With oMsg
            iSubject = .Subject
            tu = Left(iSubject, 2)
            hu = Left(iSubject, 3)
            If Val(iSubject) > 7999 Then
                iAttachCnt = .Attachments.Count
                If iAttachCnt > 0 Then
                    For iCtr = 1 To iAttachCnt
                        With .Attachments.Item(1)
                            .SaveAsFile "C:\" & tu & "000-" & tu & "999\" & hu & "00-" & hu & "99\" & iSubject & "\org\" & .FileName
                            .Delete
                        End With
                    Next iCtr
                End If
            End If
        End With
    Next
End Sub
Avatar billede zitzo Nybegynder
01. juli 2005 - 12:51 #3
Hmm nå jeg fandt ud af det ikke var nødvendigt at slette de attachments alligevel... haha nå god ferie allesammen...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester