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
- 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.
- 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.
- 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 |
|
Dynamische arrays
De syntaxis voor declareren DYNAMIC arrays is als volgt:
Dim arrayName() as datatype ReDim arrayName(4)
HIER,
| Code | Actie |
|---|---|
| Dim arrayName () gegevenstype |
|
| ReDim arraynaam(4) |
|
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
- Open Microsoft Excel
- 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
- Voeg een opdrachtknop toe aan het blad
- Stel de eigenschap name in op cmdLoadBeverages
- Stel de eigenschap bijschrift in op Dranken laden
Uw GUI zou er nu als volgt uit moeten zien
Stap 3 โ Sla het bestand op
- Klik op de knop Opslaan als
- Kies Excel Macro-Enabled Workbook (*.xlsm) zoals weergegeven in de onderstaande afbeelding
Stap 4 โ Schrijf de code
We gaan nu de code voor onze applicatie schrijven
- Klik met de rechtermuisknop op de knop Dranken laden en selecteer code bekijken
- 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 |
|
| Drankjes(1) = โPepsiโ |
|
| Sheet1.Cells(1, 1).Value = "Mijn favoriete dranken." |
|
| Blad1.Cellen(2, 1).Waarde = Drankjes(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)
Klik op de knop Dranken laden
U krijgt de volgende resultaten
Download Excel met bovenstaande code
Download het bovenstaande Excel-bestand. Code
Samenvatting
- Een array is een variabele die meer dan รฉรฉn waarde kan opslaan
- Excel VBA ondersteunt statische en dynamische arrays
- Arrays maken het gemakkelijk om onderhoudbare code te schrijven, vergeleken met het declareren van veel variabelen voor gegevens die logisch gerelateerd zijn.





