VBA verwijzingen

Excel

Bij deze bron is het voor het eerst noodzakelijk om een verwijzing te maken naar een bibliotheek, namelijk naar de bibliotheek Microsoft Excel Object Library.

Een verwijzing zoals deze is noodzakelijk omdat de toepassing in Word is ontwikkeld en er van daaruit gewerkt gaat worden met Excel objecten.

In de plaats van objecten zoals een Word-applicatie, -document en -tabel wordt er nu gebruik gemaakt van de objecten Excel-applicatie, -werkboek, -werkblad en -bereik. Al deze objecten hebben een zogenaamde parent-child verhouding . Dit is tevens een mooi voorbeeld van het OOP principe wat staat voor Object Orientated Programming, oftewel Object Georiënteerd Programmeren.

Voorts is Excel verder een prima middel om contactpersonen te beheren, echter is dit niet een van de efficienste en snelste methoden.

'-----------------------------------------------------------------------------------------------------------------------
' Auteur        : pascalterheege.nl
' Datum         : 29-3-2017
' Object        : clsExcel
' Doel          : waarden laden, wijzigen en verwijderen uit ExcelBestand
' Verwijzing    : Microsoft Excel X Object library
' Objecten      : 1. Excel applicatie
'                 2. Excel werkboek
'                 3. Excel werkblad
'                 4. Excel bereik
'-----------------------------------------------------------------------------------------------------------------------

Option Explicit

Dim objExcel As Excel.Application
Dim objWerkboek As Excel.Workbook
Dim objWerkblad As Excel.Worksheet
Dim objBereik As Excel.Range

Private Sub Class_Initialize()

'   Initialisatie Excel-objecten

    Set objExcel = New Excel.Application
    Set objWerkboek = objExcel.Workbooks.Open(ExcelBestand)
    Set objWerkblad = objWerkboek.Sheets(1)
    Set objBereik = objWerkblad.UsedRange

End Sub

Public Sub Laden(lsb As ListBox)

'   Waarden uitlezen

    Dim i As Integer
    
    For i = 2 To objBereik.Rows.Count
    
        With lsb
            .AddItem
            .List(i - 2, 0) = objBereik.Cells(i, 1)
            .List(i - 2, 1) = objBereik.Cells(i, 2)
            .List(i - 2, 2) = objBereik.Cells(i, 3)
        End With
        
    Next
    
End Sub

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

'   Nieuwe rij toevoegen

    With objBereik
        .Cells(objBereik.Rows.Count + 1, 1) = strNummer
        .Cells(objBereik.Rows.Count + 1, 2) = strVoornaam
        .Cells(objBereik.Rows.Count + 1, 3) = strAchternaam
    End With

End Sub

Public Sub Wijzig(intNummer As Integer, strVoornaam As String, strAchternaam As String)

'   Aan de hand van nummer rij wijzigen

    Dim i As Integer
    
    For i = 2 To objBereik.Rows.Count
    
        If objBereik.Cells(i, 1) = intNummer Then
            objBereik.Cells(i, 2) = strVoornaam
            objBereik.Cells(i, 3) = strAchternaam
            Exit For
        End If
    
    Next i

End Sub

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

'   Alle rijen verwijderen (exclusief kop) of aan de hand van nummer
    
    Dim i
    
    For i = objBereik.Rows.Count To 2 Step -1
    
        If blnAlles = True Then
        
            objBereik.Rows(i).Delete
        
        Else
    
            If objBereik.Rows.Cells(i, 1) = strNummer Then
                objBereik.Rows(i).Delete
            End If
        
        End If
        
    Next

End Sub

Private Sub Class_Terminate()
    
'   Deinitialisatie Excel-objecten
    
    objWerkboek.Close (False)
    objExcel.Quit
    
    Set objBereik = Nothing
    Set objWerkboek = Nothing
    Set objExcel = Nothing

End Sub