Skip to the content

Dit blog gaat over het gebruiken van array's in Excel.

Een array is een reeks waarden die allemaal een eigen index hebben, waardoor dit een erg handig en krachtig instrument is om in je programma code te gebruiken om bijvoorbeeld vergelijkingen te maken.

Je kan voor iedere variabele een eigen declaratie maken voor het opslaan van gegevens zoals we dat doen in het blog Het gebruik van variabelen in Excel.

In dat blog declareren we de variabelen die allemaal van het type double zijn.

Als je langere reeksen met waarden gaat gebruiken, bij voorkeur van hetzelfde type, dan kan je deze waarden ook toekennen aan een zogenaamde array (Engels voor rij of reeks).

Laten we beginnen met een simpel en praktisch voorbeeld waarmee we de kleur van het tabblad af laten hangen van de naam die we eraan hebben gegeven. Maak een nieuwe Excel sheet met daarin de volgende tabnamen:

  • Fin_Data
  • Fin_collect
  • Fin_Calc
  • Deb_Base
  • Deb_Sales
  • Cred_Base
  • Cred_Purch
  • Fin_Profit

Wijzigen tabblad kleuren in Excel | Reinder.eu

 

In dit voorbeeld weten we nu dat er 8 tabbladen zijn verdeeld in drie groepen (Fin = Financieel, Deb = debiteur en Cred = crediteur)

We kunnen deze namen toekennen aan 8 variabelen van hetzelfde type (tekst of string). Maak hiervoor nu in de VBA editor onderstaande sub aan.

    'We declareren nu een array die 8 waarden van het type string op moet slaan in het geheugen
    'Deze waarden willen we later in een andere sub of functie hergebruiken
    Dim m_tabbladnaam(1 To 8) As String
    
Public Sub TabbladKleur()

    'Declareer nu een variabele waarmee we kunnen tellen van 1 tot 8 (=8 posities)
    'De eerste index van een array is altijd 0
    Dim i As Integer
    'Start een lus die begint te tellen met 1 en stopt bij 8
    For i = 1 To 8
        'wijs de naam van het tabblad toe aan de array
        m_tabbladnaam(i) = ThisWorkbook.Sheets(i).Name
        'de array wordt nu als volgt gevuld
        '0 Fin_Data
        '1 Fin_collect
        '2 Fin_Calc
        '3 Deb_Base
        '4 Deb_Sales
        '5 Cred_Base
        '6 Cred_Purch
        '7 Fin_Profit
    Next
    
    'Nu kunnen we testen of de namen goed zijn opgeslagen
    For i = 1 To 8
        MsgBox ("De naam van tabblad index :" & CStr(i) & " is " & m_tabbladnaam(i))
    Next
    
End Sub

Run de sub door te klikken op de button run of klik de F5 toets

Reinder.eu | button run F5 Excel

 

De messagebox zal nu 8 keer worden geopend en de naam van het tabblad tonen. We hebben de namen van de tabbladen nu dus toegekend aan een array.

array  om de kleur van een tabblad te bepalen

 

Nu kunnen we een functie maken die deze array gebruikt om de kleur van een tabblad te bepalen. (Voor de gevorderde programmeurs: Dit kan veel eenvoudiger maar is wel een mooie manier om de functie van een array te laten zien)

 Public Sub SetTabbladkleur()


Dim i As Integer

    For i = 1 To 8
        'wijs de naam van het tabblad toe aan de array
        m_tabbladnaam(i) = ThisWorkbook.Sheets(i).Name
    Next
    
    For i = 1 To 8
        'selecteer de eerste drie posities van de naam van het tabblad
        Select Case Left(m_tabbladnaam(i), 3)
        'Als de eerste drie letters voldoen aan het argument stel dan de kleur in van het tabblad
        Case "Fin"
            ThisWorkbook.Sheets(i).Tab.Color = 255
        Case "Deb"
            ThisWorkbook.Sheets(i).Tab.Color = 160
        Case "Cre"
            ThisWorkbook.Sheets(i).Tab.Color = 80
        End Select
    Next

End Sub

Klik nogmaals op de run button of toets F5 en de kleuren van de tabbladen zijn nu ingesteld.

Reinder.eu | kleuren van de tabbladen

 

In het volgende blog gaan we nog een stap verder met de array.