Excel VBA-arrays: wat is, hoe te gebruiken en soorten arrays in VBA

Wat is VBA-array?

Een array wordt gedefinieerd als een geheugenlocatie die meer dan รฉรฉn waarde kan opslaan. De waarden moeten allemaal van hetzelfde gegevenstype zijn. Stel dat u een lijst met uw favoriete dranken in รฉรฉn enkele variabele wilt opslaan. Hiervoor kunt u een VBA-array gebruiken.

Door een array te gebruiken, kunt u met dezelfde naam naar de gerelateerde waarden verwijzen. U kunt een index of subscript gebruiken om ze uit elkaar te houden. De afzonderlijke waarden worden de elementen van de Excel VBA-array genoemd. Ze zijn aaneengesloten vanaf index 0 tot en met de hoogste indexwaarde.

In deze zelfstudie wordt ervan uitgegaan dat u Microsoft Excel versie 2013. De kennis is nog steeds van toepassing op andere versies van Microsoft Excel ook.

Wat zijn de voordelen van arrays?

Hieronder staan โ€‹โ€‹enkele voordelen die de VBA-arrayfunctie biedt

  1. Groepeer logisch gerelateerde gegevens samen โ€“ stel dat u een lijst met studenten wilt opslaan. U kunt een enkele arrayvariabele gebruiken die afzonderlijke locaties heeft voor leerlingcategorieรซn, zoals de kleuterschool, de basisschool, de middelbare school, enz.
  2. Arrays maken het gemakkelijk om onderhoudbare code te schrijven. Voor dezelfde logisch gerelateerde gegevens kunt u รฉรฉn enkele variabele definiรซren, in plaats van meer dan รฉรฉn variabele te definiรซren.
  3. Betere prestaties โ€“ zodra een array is gedefinieerd, kunnen gegevens sneller worden opgehaald, gesorteerd en gewijzigd.

Soorten arrays in VBA

VBA ondersteunt twee soorten arrays, namelijk;

  • Statisch โ€“ Dit soort arrays hebben een vast, vooraf bepaald aantal elementen dat kan worden opgeslagen. U kunt de grootte van het gegevenstype van een statische array niet wijzigen. Deze zijn handig als u met bekende entiteiten wilt werken, zoals het aantal dagen in een week, geslacht, enz.Bijvoorbeeld: Dim ArrayMonth(12) als tekenreeks
  • Dynamisch โ€“ Dit soort arrays hebben geen vast, vooraf bepaald aantal elementen dat kan worden opgeslagen. Deze zijn handig bij het werken met entiteiten waarvan u het aantal niet vooraf kunt bepalen.Bijvoorbeeld: Dim ArrayMonth() als variant

Syntaxis voor het declareren van arrays

statische arrays

De syntaxis voor declareren STATISCH arrays is als volgt:

Dim arrayName (n) as datatype

HIER,

Code Actie
Dim arrayName (n) gegevenstype
  1. Het declareert een array-variabele genaamd arrayName met een grootte van n en datatype. Grootte verwijst naar het aantal elementen dat de array kan opslaan.

Dynamische arrays

De syntaxis voor declareren DYNAMIC arrays is als volgt:

Dim arrayName() as datatype
ReDim arrayName(4)

HIER,

Code Actie
Dim arrayName () gegevenstype
  1. Het declareert een arrayvariabele met de naam arrayName zonder het aantal elementen op te geven
ReDim arraynaam(4)
  1. Het specificeert de arraygrootte nadat de array is gedefinieerd.

Array-afmetingen

Een array kan รฉรฉn dimensie, twee dimensies of multidimensionaal zijn.

  • Eรฉn dimensie: In deze dimensie gebruikt de array slechts รฉรฉn index. Bijvoorbeeld een aantal mensen van elke leeftijd.
  • Twee dimensies: In deze dimensie gebruikt de array twee indexen. Bijvoorbeeld een aantal leerlingen in elke klas. Het vereist het aantal klassen en het studentnummer in elke klas
  • Multidimensionaal: In deze dimensie gebruikt de array meer dan twee indexen. Temperaturen overdag bijvoorbeeld. (30, 40, 20).

Array gebruiken in Excel VBA

We gaan een eenvoudige applicatie maken. Deze applicatie vult een Excel-sheet met data uit een array-variabele. In dit VBA Array-voorbeeld gaan we de volgende dingen doen.

  • Maak een nieuw Microsoft Excel-werkmap en sla deze op als Excel-werkmap met macro's (*.xlsm)
  • Voeg een opdrachtknop toe aan de werkmap
  • Stel de naam- en bijschrifteigenschappen van de opdrachtknop in
  • Programmeren van de VBA die het Excel-blad vult

Laten we deze oefening stap voor stap doen,

Stap 1 โ€“ Maak een nieuwe werkmap

  1. Open Microsoft Excel
  2. Sla de nieuwe werkmap op als VBA Arrays.xlsm

Stap 2 โ€“ Voeg een opdrachtknop toe

Let op: In deze sectie wordt ervan uitgegaan dat u bekend bent met het proces voor het maken van een interface in Excel. Als u niet bekend bent, lees dan de tutorial VBA Excel-formuliercontrole en ActiveX-controle. Het laat u zien hoe u de interface maakt

  1. Voeg een opdrachtknop toe aan het blad

Gebruik Array in Excel VBA

  1. Stel de eigenschap name in op cmdLoadBeverages
  2. Stel de eigenschap bijschrift in op Dranken laden

Uw GUI zou er nu als volgt uit moeten zien

Gebruik Array in Excel VBA

Stap 3 โ€“ Sla het bestand op

  1. Klik op de knop Opslaan als
  2. Kies Excel Macro-Enabled Workbook (*.xlsm) zoals weergegeven in de onderstaande afbeelding

Gebruik Array in Excel VBA

Stap 4 โ€“ Schrijf de code

We gaan nu de code voor onze applicatie schrijven

  1. Klik met de rechtermuisknop op de knop Dranken laden en selecteer code bekijken
  2. Voeg de volgende code toe aan de klikgebeurtenis van cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String
     
    Drinks(1) = "Pepsi"
    Drinks(2) = "Coke"
    Drinks(3) = "Fanta"
    Drinks(4) = "Juice"
     
    Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
    Sheet1.Cells(2, 1).Value = Drinks(1)
    Sheet1.Cells(3, 1).Value = Drinks(2)
    Sheet1.Cells(4, 1).Value = Drinks(3)
    Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub

HIER,

Code Actie
Dim Drankjes(1 Tot 4) Als String
  • Het declareert een array variabele genaamd Drinks. De eerste array index is 1 en de laatste array index is 4.
Drankjes(1) = โ€œPepsiโ€
  • Wijst de waarde Pepsi toe aan het eerste array-element. De andere soortgelijke code doet hetzelfde voor de andere elementen in de array.
Sheet1.Cells(1, 1).Value = "Mijn favoriete dranken."
  • Schrijft de waarde Mijn favoriete dranken in celadres A1. Blad1 verwijst naar het blad, en Cellen(1,1) verwijst naar rijnummer 1 en kolom 1 (B)
Blad1.Cellen(2, 1).Waarde = Drankjes(1)
  • Schrijft de waarde van het array-element met index 1 naar rij nummer twee van kolom 1

Onze applicatie testen

Selecteer het tabblad Ontwikkelaar en zorg ervoor dat de knop Ontwerpmodus 'uit' staat. De indicator is dat deze een witte achtergrond heeft en geen gekleurde (groenachtige) achtergrond. (Zie afbeelding hieronder)

Een applicatie testen in Excel VBA

Klik op de knop Dranken laden

U krijgt de volgende resultaten

Een applicatie testen in Excel VBA

Download Excel met bovenstaande code

Download het bovenstaande Excel-bestand. Code

Samenvatting

  1. Een array is een variabele die meer dan รฉรฉn waarde kan opslaan
  2. Excel VBA ondersteunt statische en dynamische arrays
  3. Arrays maken het gemakkelijk om onderhoudbare code te schrijven, vergeleken met het declareren van veel variabelen voor gegevens die logisch gerelateerd zijn.

Vat dit bericht samen met: