[VBA] Outlook attachments opslaan

Pagina: 1
Acties:

  • bas.kb
  • Registratie: Oktober 2002
  • Laatst online: 06-08 14:11

bas.kb

BI'er :P

Topicstarter
Hallo allemaal,

Ik heb een probleem met een VBA script in Outlook 2000. Het script moet de attachments van de geselecteerde emails in een directory wegeschrijven en in het onderwerp van het mailtje 'DONE' schrijven. Het opslaan gaat goed, alleen het toevoegen van 'DONE' in het onderwerp doet hij alleen bij het 1e geselecteerde emailtje. Zolang je er dus maar 1 tegelijk selecteerd gaat het verhaaltje goed, maar zodra je er meerdere selecteerde en het script uitvoert staat alleen in het eerst aageklikte mailtje 'DONE', terwijl hij wel alle attachments opgeslagen heeft. Het opslaan commando en het toevoeg commando zitten in dezelfde lus.
De code ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Set myAttachments = myItem.Attachments
             
        'if there are some attachments
        If myAttachments.Count > 0 Then
        
            'for all attachments do...
            For i = 1 To myAttachments.Count
                              
                'opslaan
                myAttachments(i).SaveAsFile myOrt & _
                myAttachments(i).DisplayName
                'done toevoegen aan onderwerp
                myItem.Subject = myItem.Subject & "DONE " 

                Next i
            
            End If


Ik heb al geprobeerd om aan het myItem.Subject gedeelte de teller toe te voegen, dit had ook geen resultaat. I-mand enig idee? _/-\o_

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Als ik je code hierboven goed lees, gaat het opslaan van attachements die bijvoorbeeld in het derde of het vierde mailtje staan ook niet goed?

Je zet namelijk de attachements van MyItem in de variabele, maar ik zie nergens dat MyItem ALLE mailtjes zou bevatten...? En als ik dan naar de naamgeving kijk (MyItem ipv MyItems) denk ik dat MyItem alleen het mailtje is dat op dat moment geselecteerd is.

Hoe haal je de selectie op? Doe je dat met een .selected ofzo? Want je zou een loopje moeten maken om door de verschillende mailtjes te lopen, niet door de verschillende attachements (wat is dat toch een kl*te-woord om te typen :P)

My personal website


  • bramseltje
  • Registratie: September 2001
  • Laatst online: 23-07 23:59
Hmm, je voegt nu dus voor elk attachement in je mailtje een "DONE" toe? Tenminste, zo staat het in je source :P

Je zou trouwens toch ook een for each lus kunnen gebruiken, ipv een for to lus?
Visual Basic:
1
2
3
4
5
6
7
8
9
10
For Each mail in MyItems
    Set myAttachements = mail.Attachements

    For Each item in myAttachements
        item.SaveAsFile
        enz...
    Next
    
    mail.Subject = mail.Subject & " DONE"
Next