VBA-matrixen in Excel: typen en gebruiksvoorbeeld
⚡ Slimme samenvatting
In Excel VBA-arrays worden groepen gerelateerde waarden van hetzelfde gegevenstype onder één naam opgeslagen, die toegankelijk zijn via een index. Deze pagina legt statische en dynamische arrays uit, evenals één-, twee- en multidimensionale arrays, de declaratiesyntaxis en een uitgewerkt voorbeeld van het vullen van een drankje.

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?
Voordat je code voor arrays schrijft, is het handig om te begrijpen waarom arrays de moeite waard zijn om te gebruiken. Hieronder volgen enkele voordelen van de VBA-arrayfunctie.
- 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
Zodra je weet welk type het beste bij je gegevens past, is de volgende stap de declaratiesyntaxis voor elk type.
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
Nu de theorie behandeld is, kunnen we een array in een echt werkblad gebruiken. We gaan een eenvoudige applicatie maken. Deze applicatie vult een Excel-blad met gegevens uit een arrayvariabele. In dit VBA-arrayvoorbeeld 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 drankjes” |
|
| Blad1.Cellen(2, 1).Waarde = Drankjes(1) |
|
Onze applicatie testen
Nu de code is toegevoegd, is de laatste stap het activeren van de knop en controleren of de array het werkblad vult. Selecteer het tabblad Ontwikkelaar en zorg ervoor dat de knop Ontwerpmodus is uitgeschakeld. Dit is te zien aan de witte achtergrond in plaats van de groenachtige achtergrond. (Zie onderstaande afbeelding)
Klik op de knop Dranken laden
U krijgt de volgende resultaten
Download Excel met bovenstaande code
Download het bovenstaande Excel-bestand. Code





