01. juli 2005 - 10:41Der 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...
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 :)
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
Hmm nå jeg fandt ud af det ikke var nødvendigt at slette de attachments alligevel... haha nå god ferie allesammen...
Synes godt om
Ny brugerNybegynder
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.