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 een enkele variabele wilt opslaan, u kunt daarvoor de 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 aangrenzend van index 0 tot en met de hoogste indexwaarde.
In deze tutorial wordt ervan uitgegaan dat u Microsoft Excel versie 2013 gebruikt. De kennis is nog steeds van toepassing op andere versies van Microsoft Excel.
In deze VBA-programmeerhandleiding leer je:
- Wat zijn voordelen van arrays?
- Typen arrays in VBA
- Array gebruiken in Excel VBA
- Onze applicatie testen
Wat zijn voordelen van arrays?
Hieronder volgen enkele van de voordelen die de VBA-arrayfunctie biedt
- Groepeer logisch gerelateerde gegevens bij elkaar - stel dat u een lijst met studenten wilt opslaan. U kunt een enkele arrayvariabele gebruiken die afzonderlijke locaties heeft voor studentcategorieën, zoals kindertuin, primair, secundair, middelbare school, enz.
- Arrays maken het gemakkelijk om onderhoudbare code te schrijven. Voor dezelfde logisch gerelateerde gegevens kunt u een enkele variabele definiëren in plaats van meer dan één variabele te definiëren.
- Betere prestaties - zodra een array is gedefinieerd, is het sneller om gegevens op te halen, te sorteren en te wijzigen.
Typen arrays in VBA
VBA ondersteunt twee soorten arrays namelijk;
- Statisch - Dit soort arrays heeft een vast, vooraf bepaald aantal elementen dat kan worden opgeslagen. Men kan de grootte van het datatype 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) As String
- Dynamisch - Dit type arrays heeft 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 () As Variant
Syntaxis om arrays te declareren
Statische arrays
De syntaxis voor het declareren van STATIC- arrays is als volgt:
Dim arrayName (n) as datatype
HIER,
Code | Actie |
Dim arrayName (n) datatype |
|
Dynamische arrays
De syntaxis voor het declareren van DYNAMIC- arrays is als volgt:
Dim arrayName() as datatypeReDim arrayName(4)
HIER,
Code | Actie |
Dim arrayName () datatype |
|
ReDim arrayName (4) |
|
Matrix-afmetingen
Een array kan één dimensie, tweedimensionaal 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. Bijvoorbeeld temperaturen overdag. (30, 40, 20).
Array gebruiken in Excel VBA
We maken een eenvoudige applicatie. Deze applicatie vult een Excel-blad met gegevens uit een matrixvariabele. In dit VBA Array-voorbeeld gaan we de volgende dingen doen.
- Maak een nieuwe Microsoft Excel-werkmap en sla deze op als Excel-werkmap met ingeschakelde macro's (* .xlsm)
- Voeg een opdrachtknop toe aan de werkmap
- Stel de naam en bijschrifteigenschappen van de opdrachtknop in
- Programmering van de VBA die het Excel-blad vult
Laat 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
Opmerking: in dit gedeelte wordt ervan uitgegaan dat u bekend bent met het proces van het maken van een interface in Excel. Als u niet bekend bent, lees dan de tutorial VBA Excel Form Control & ActiveX Control. 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 nu als volgt moeten zijn
Stap 3 - Sla het bestand op
- Klik op de knop Opslaan als
- Kies Excel-werkmap met ingeschakelde macro's (* .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 de weergavecode
- Voeg de volgende code toe aan de click-gebeurtenis van cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(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." |
|
Sheet1.Cells (2, 1) .Value = Drankjes (1) |
|
Onze applicatie testen
Selecteer het ontwikkelaarstabblad en zorg ervoor dat de ontwerpmodusknop "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 de bovenstaande Excel-code
Overzicht
- 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 in vergelijking met het declareren van veel variabelen voor gegevens die logisch gerelateerd zijn.