VBA verwijzingen

Outlook

Outlook is een interessante bron wanneer het gaat om het beheren van contactpersonen. Hiertoe heeft Outlook zelfs een ingebouwde module met contactpersonen.  Een groot voordeel is dat alle velden in principe al bestaan. Eventuele extra velden kunnen worden toegevoegd.

Daarnaast kunnen deze contactpersonen ook worden gebruikt voor het samenvoegen met een Word-document. In dit artikel wordt dat nader toegelicht.

Ook hier zal weer een verwijzing gemaakt moeten worden naar een bibliotheek, in dit geval die van Outlook. De onderstaande klassenmodule demonstreert hoe de contactpersonen live ingelezen en bewerkt kunnen worden.
'-----------------------------------------------------------------------------------------------------------------------
' Auteur        : pascalterheege.nl
' Datum         : 5-4-2017
' Object        : clsOutlook
' Doel          : waarden laden, wijzigen en verwijderen uit WordBestand
' Verwijzing    : Microsoft Outlook X Object library
' Objecten      : 1. Outlook applicatie
'                 2. Outlook contactpersonen map
'                 3. Outlook contactpersoon
'-----------------------------------------------------------------------------------------------------------------------

Option Explicit

Dim objOutlook As Outlook.Application
Dim objContactsFolder As Outlook.Folder
Dim objContactpersoon As Outlook.ContactItem

Private Sub Class_Initialize()

'   Initialisatie Outlook-objecten

    Set objOutlook = New Outlook.Application
    Set objContactsFolder = objOutlook.Session.GetDefaultFolder(olFolderContacts)
    
End Sub

Public Sub Laden(lsb As ListBox)

'   Waarden uitlezen
    
    Dim i As Integer
    
    For Each objContactpersoon In objContactsFolder.Items
        With lsb
            .AddItem
            .List(i, 0) = objContactpersoon.CompanyName
            .List(i, 1) = objContactpersoon.FirstName
            .List(i, 2) = objContactpersoon.LastName
        End With
        
        i = i + 1
        
    Next
    
End Sub

Public Sub Toevoegen(strNummer As String, strVoornaam As String, strAchternaam As String)

'   Nieuwe contactpersoon toevoegen

    Set objContactpersoon = objOutlook.CreateItem(olContactItem)
    
    With objContactpersoon
        .CompanyName = strNummer
        .FirstName = strVoornaam
        .LastName = strAchternaam
        .Save
    End With
        
End Sub

Public Sub Wijzig(strNummer As String, strVoornaam As String, strAchternaam As String)

'   Aan de hand van nummer contactpersoon wijzigen

    For Each objContactpersoon In objContactsFolder.Items
        With objContactpersoon
            If .CompanyName = strNummer Then
                .FirstName = strVoornaam
                .LastName = strAchternaam
                .Save
            End If
        End With
    Next

End Sub

Public Sub Verwijder(strNummer As String, blnAlles As Boolean)

'   Aan de hand van nummer contactpersoon verwijderen

    For Each objContactpersoon In objContactsFolder.Items
        With objContactpersoon
            If blnAlles = True Then
                .Delete
            Else
                If .CompanyName = strNummer Then
                    .Delete
                End If
            End If
        End With
    Next

End Sub

Private Sub Class_Terminate()

'   Deinitialisatie Outlook-objecten

    objOutlook.Quit

    Set objContactpersoon = Nothing
    Set objContactsFolder = Nothing
    Set objOutlook = Nothing

End Sub