Excel VBA-arrays: wat is, hoe te gebruiken & Typen arrays in VBA

Inhoudsopgave:

Anonim

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

  1. 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.
  2. 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.
  3. 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
  1. Het declareert een arrayvariabele met de naam arrayName met een grootte van n en datatype. Grootte verwijst naar het aantal elementen dat de array kan opslaan.

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
  1. Het declareert een arrayvariabele met de naam arrayName zonder het aantal elementen op te geven
ReDim arrayName (4)
  1. Het specificeert de array-grootte nadat de array is gedefinieerd.

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

  1. Open Microsoft Excel
  2. 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

  1. Voeg een opdrachtknop toe aan het blad
  1. Stel de eigenschap name in op cmdLoadBeverages
  2. Stel de eigenschap bijschrift in op Dranken laden

Uw GUI zou nu als volgt moeten zijn

Stap 3 - Sla het bestand op

  1. Klik op de knop Opslaan als
  2. 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

  1. Klik met de rechtermuisknop op de knop Dranken laden en selecteer de weergavecode
  2. 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

  • Het declareert een arrayvariabele 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 rij nummer 1 en kolom 1 (B)

Sheet1.Cells (2, 1) .Value = Drankjes (1)

  • Schrijft de waarde van het array-element met index 1 naar rij nummer twee van kolom 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

  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 in vergelijking met het declareren van veel variabelen voor gegevens die logisch gerelateerd zijn.