macro VBA voor Outlook

Status
Niet open voor verdere reacties.

AnnevdD

Verenigingslid
Lid geworden
8 mei 2007
Berichten
228
Daar heb ik ooit een macro voor gemaakt in VBA voor Outlook. Daar kan ik echter pas maandag weer bij maar als je wilt neem ik die wel mee om hier te plaatsten. Het is een heel simpel stukje code dat denk ik eenvoudig aan je wens kan worden aangepast.

Hallo edmoor
Ik ben wel geïnteresseerd in die code. Ik heb hetzelfde probleem
 
Hoi Anne,

Ik heb je verzoek doorgestuurd naar m'n werk account zodat ik het niet vergeet.
Die code zal ik dan morgen hier plaatsen.
 
Volgens mij kun je daar prima regels voor gebruiken; er is althans een regeloptie waarin je voor verzonden emails kunt aangeven waar de berichten van bepaalde accounts moeten worden opgeslagen. Dus dat hoef je helemaal niet te programmeren.
 
Is dat in alle Office versies zo?
 
Hier in 2007, 2010 en 2013 ook.
Je zou dus eenvoudig je probleem op kunnen lossen Anne.
Laat maar even weten of het gelukt is.

De routine die ik heb gemaakt is om berichten die in m'n spam folder terecht komen op afzender te controleren en dan eventueel naar de Inbox te verplaatsen.
 
Laatst bewerkt:
Ja, het klopt. Het werkt bij mij ook (alleen om een kopie ergens te plaatsen) . Maar als het ook met een macro kan heb je meer mogelijkheden om het proces te sturen.
Dus zou ik het fijn vinden om ook die macro te ontvangen.
Vast mijn dank.
 
Dat is prima uiteraard. Dit is de code die ik gebruik voor die spambox controle. Deze is eenvoudig naar eigen wens aan te passen.

Code:
Option Explicit
Public WithEvents sp As Items
Public olInboxFolder As MAPIFolder
Public olSpamboxFolder As MAPIFolder
'Public InboxID As String
Public SpamboxID As String

Private Sub Application_Startup()
    ' Deze functie wordt aangeroepen wanneer Outlook start
    ' Na evt. wijzigingen cursor hierin plaatsen en op F5 drukken om uit te voeren, of Outlook herstarten
    ' Gebruik de functie GetOutlookFolderID om onderstaande ID's te verkrijgen
    ' Deze verschillen per account en machine
    'InboxID = "00000000F610F02F768A24409CB439CBE875E8C101004571A37BC60ED748B89AC5149E9C49270000000669AD0000"
    SpamboxID = "00000000F610F02F768A24409CB439CBE875E8C1010059737BE802D4D64A95269656B96927300000074B5C050000"
    'Set ns = Application.GetNamespace("MAPI").GetFolderFromID(InboxID).Items
    Set sp = Application.GetNamespace("MAPI").GetFolderFromID(SpamboxID).Items

End Sub

Private Sub sp_ItemAdd(ByVal item As Object)
    Dim msgItem As Object
    
    Dim toFolder As Outlook.MAPIFolder
    Set toFolder = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    
    On Local Error Resume Next
    For Each msgItem In sp
        If msgItem.UnRead = True And item.SenderEmailAddress = "iemand@provider.com" Then
            MsgBox (item.SenderEmailAddress), vbInformation
            msgItem.UnRead = True
            msgItem.Move toFolder
        End If
    Next
    
    Set olSpamboxFolder = Nothing
End Sub
 
Ok. Als je hulp nodig hebt bij de verbouwing dan laat het maar weten :)
 
@AnnevdD Ik heb je vraag een eigen plek gegeven. Het is niet toegestaan in iemand anders zijn vraag jouw probleem te plaatsen. Dit is onoverzichtelijk voor de helpers maar vooral voor de topicstarter. Bovendien was de topic uit 2012, die mogen met rust gelaten worden.
 
Anne,

Ik zie net dat ik de routine voor het bepalen van de FolderID er niet bij heb gedaan.
Daar zal ik nog voor zorgen maar ik ben bang dat dat niet voor maandag gaat lukken.
 
Jij ook! Een uur extra weekend ;)
 
Laatst bewerkt:
Hallo Anne,

Dit is de routine voor het opvragen van de FolderID:

Code:
Private Sub GetOutlookFolderID()
   Dim olfolder As Outlook.MAPIFolder
   Dim olApp As Outlook.Application
   Set olApp = CreateObject("Outlook.Application")
   Set olfolder = olApp.GetNamespace("MAPI").PickFolder
   ' olfolder.Display
   Debug.Print (olfolder.EntryID)
   Debug.Print (olfolder.Name)
   Set olfolder = Nothing
   Set olApp = Nothing
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan