vba variables option explicit vba
In deze tutorial wordt uitgelegd hoe u VBA-variabelen declareert en gebruikt. Leer ook over opties expliciet, variabel bereik, statische en constante variabelen:
Op een computer worden alle datawaarden opgeslagen in een geheugen of computeropslag. Om toegang te krijgen tot deze waarden, moet u een naam specificeren die aan die waarde is gekoppeld, die in programmeertalen een variabele wordt genoemd.
In deze zelfstudie leren we hoe we een variabele kunnen declareren en definiëren, samen met de verschillende soorten variabele scopes, en we zullen ook statische en constante variabelen in detail onderzoeken.
Kijk hier om AZ van VBA-trainingshandleidingen te zien
Wat je leert:
- VBA-variabelen
- Gevolgtrekking
VBA-variabelen
Variabelen zijn als tijdelijke aanduidingen voor de waarden in computeropslag. Variabelen kunnen verschillende soorten waarden bevatten en die waarden kunnen tijdens het uitvoeren van de code veranderen.
Elke variabele heeft een naam die wordt gebruikt om toegang te krijgen tot de waarde. VBA heeft bepaalde beperkingen met betrekking tot de naamselectie.
Hieronder staat de lijst met beperkingen:
- De naam van uw variabele mag niet langer zijn dan 255 tekens.
- Een variabelenaam mag niet beginnen met een getal.
- U kunt niet beginnen met speciale tekens zoals!, @, &,., # Of mogen geen spaties bevatten.
- Sleutelwoorden worden niet als een variabelenaam beschouwd.
De compiler genereert een foutmelding als u deze beperkingen overtreedt
Voorbeeld:
Geldige variabelenamen: varName, Result12, First_Number
Ongeldige variabelenamen: 123abc, #nummer, Sub, abc.123
Eerste cijfer (spatie is niet toegestaan tussen woorden)
Een VBA-variabele declareren
We moeten de Geen trefwoord om een variabele te declareren. Er zijn 2 secties bij het declareren van een variabele. 1stis de naam van de variabele en 2ndis het type waarde dat moet worden opgeslagen in de variabele die het gegevenstype wordt genoemd.
Syntaxis: Dim VariableName As DataType
Voorbeeld:
- Dim MyAge As Integer
- Dim My_Percentage As Double
- Dim Full_Name As String
Hier vertel je de compiler expliciet dat mijn variabele alleen dit soort gegevens mag opslaan en VBA zal ervoor zorgen dat er een compilertype mismatch-fout wordt gegenereerd wanneer een waarde die voor de variabele is gedefinieerd niet overeenkomt met het gegevenstype.
Voorbeeld:
Maar als u niet zeker bent van het datatype van de variabele, kunt u met VBA het datatype overslaan. De onderstaande syntaxis is ook geldig.
Dim Variabelenaam
Wanneer u het gegevenstype van de variabele niet declareert, behandelt VBA het als een Variant-gegevenstype, en het is verplicht om elk type gegeven geheel getal zoals een geheel getal, tekenreeks, werkmap, enz. Te accepteren. In hetzelfde programma, de variantvariabelen kunnen stringwaarde, integerwaarde en elk ander type ook accepteren.
Omdat de Total_Marks een variantvariabele is, in tegenstelling tot de vorige code, zal de compiler geen fout genereren, zoals hieronder wordt weergegeven.
Notitie: Onthoud dat u met VBA een variabele kunt gebruiken zonder deze daadwerkelijk te declareren.
De onderstaande voorbeeldcode geeft ook een goed resultaat. In dit geval behandelt VBA de variabele automatisch als een gegevenstype Variant. Dit wordt een impliciete verklaring genoemd.
Voordelen van het declareren van een variabele
- Gemakkelijk te debuggen: Het is een goede gewoonte om een variabele te declareren voordat u deze gebruikt. Het geeft ons een eerder inzicht in de fouten zoals type-mismatch en typefouten, waardoor het risico om af te wijken van de logica van het programma wordt verminderd.
- Betere leesbaarheid: Als team zullen er veel mensen naar de code kijken, en het declareren van een variabele zal iedereen helpen met het type waarden dat de variabele naar verwachting aanneemt en ook de gebruikers helpen om de juiste invoerwaarden in te voeren tijdens het uitvoeren van het programma.
- Opslagruimte: Als u een variabele niet declareert, behandelt VBA deze als een variantgegevenstype dat de grootste ruimte in het geheugen inneemt (16 bytes tot 22 bytes) in vergelijking met andere gegevenstypen. Bijvoorbeeld, als u een variabele van het type Byte gebruikt die slechts 1 byte in beslag neemt en als u niet declareert, zal VBA uiteindelijk een ruimte van 16 bytes reserveren, waardoor het geheugen wordt verspild.
Optie expliciet
Om ervoor te zorgen dat alle variabelen expliciet worden gedeclareerd, moeten we de Option Explicit-instructie gebruiken voordat we ze gebruiken. Het moet aan het begin van elke procedure in die module worden gebruikt.
Laten we eens kijken naar een voorbeeld dat Option Explicit Statement niet gebruikt.
Voer de code uit (druk op F5 of de startknop in de werkbalk) en je krijgt uiteindelijk een leeg berichtvenster.
Ook al heb je de variabele gedeclareerd, je bent in een leeg resultaatvak terechtgekomen vanwege de typfout in de Msgbox Firt_Name. Option Explicit helpt ons bij het elimineren van dergelijke fouten.
Laten we dezelfde code opnieuw uitvoeren met Option Explicit. Voer Option Explicit in voordat de procedure start.
Als u nu de code uitvoert (druk op F5 of de knop Uitvoeren in de werkbalk), krijgt u een compilatiefout.
U kunt VBA laten toevoegen Optie expliciet automatisch.
In de VB Editor, Ga naar Extra -> Opties -> Selecteer 'Variabele declaratie vereist'.
Nu Optie expliciet wordt automatisch toegevoegd telkens wanneer u een nieuwe module invoegt of een nieuwe macro opneemt.
Notitie: Option Explicit wordt niet toegevoegd aan de bestaande VBA-code. U moet het indien nodig handmatig toevoegen.
Een waarde toewijzen aan een variabele
Waarden kunnen aan variabelen worden toegewezen met gelijk aan symbool (=). Als u in Excel naar een cel verwijst, moet u de bereikfuncties gebruiken.
Raadpleeg de onderstaande code.
In het bovenstaande voorbeeld is var1 een variabele die de waarde 10 rechtstreeks opslaat door (=) te gebruiken en de functie Bereik helpt om de waarde van var1 in te voeren die 10 is in Excel-cellen C1 tot C14.
Reikwijdte van een variabele
Elke variabele in een programma heeft een gedefinieerde scope. Deze scope vertelt het programma de gebieden waarin de variabele zichtbaar is, d.w.z. de module of functie die de variabele wel of niet kan gebruiken.
VBA heeft 3 soorten Scope gedefinieerd voor de variabele.
- Reikwijdte op procedureniveau
- Bereik op privé-moduleniveau
- Bereik op openbaar moduleniveau
Reikwijdte op procedureniveau
De variabelen die zijn gedefinieerd in een procedure, d.w.z. in de sub of functie, kunnen ze alleen gebruiken. Deze zijn voor geen enkele andere procedure zichtbaar.
Voorbeeld:
Als je de bovenstaande code uitvoert, zal de msgbox voor de eerste Sub een correct resultaat retourneren, maar voor de tweede Sub zal een Compiler-fout worden gegenereerd. Omdat de vertex-variabele alleen zichtbaar is voor de 1stsub en niet voor de 2ndOmdat we Option Explicit hebben gebruikt, krijgen we een compilatiefout omdat we variabelen niet definiëren in de 2ndsub.


Bereik op privé-moduleniveau
Deze variabelen zijn beschikbaar voor alle procedures in de gedefinieerde module. Standaard worden de variabelen gedeclareerd met de Geen vallen onder privé. Maar het wordt aanbevolen om privé toe te voegen voor een betere leesbaarheid.
Laten we hetzelfde voorbeeld bekijken, maar we zullen de variabele buiten de procedure declareren.
Na uitvoering zult u zien dat beide procedures zonder fouten de juiste resultaten opleveren. Voor een duidelijk begrip hebben we de juiste titel in de msgbox toegevoegd.
Bereik op openbaar moduleniveau
Dit soort variabelen zijn zichtbaar voor alle procedures en in alle modules van een project. Plaats 2 modules. (Klik met de rechtermuisknop op een blad en Invoegen -> modules).
Voer de onderstaande code in één module in.
Voer de onderstaande code in de 2e module in.
Resultaten worden hieronder weergegeven
Laten we eens kijken naar een praktisch voorbeeld en de reikwijdte beter begrijpen.
Bijgevoegd is het referentiebestand voor de bovenstaande code.
Statische variabele
Gewoonlijk wordt de waarde van de variabele alleen bewaard vanaf de procedure-aanroep tot het einde van de procedure. Het behoudt de waarde niet zodra de uitvoering van de procedure is beëindigd.
Bijvoorbeeld , in de bovenstaande code, wordt de waarde van firstNo en secondNo verwijderd zodra de procedure eindigt, de volgende keer dat u de code uitvoert, krijgen firstNo en secondNo dezelfde waarde als gedefinieerd in de code.
Maar statische variabelen zijn variabelen die de waarde van de variabele behouden, zelfs na de uitvoering. Een statische variabele is alleen toegestaan binnen een sub of een functie.
Beschouw de onderstaande code met een niet-statische variabele.
Elke keer dat je op F5 drukt, krijg je er maar 1 als resultaat.
Laten we nu de variabele als statisch declareren.
Elke keer dat u de code (F5) uitvoert, heeft het resultaat een verhoogde waarde voor count zoals 1,2,3 enz. Omdat de statische variabele zijn waarde heeft behouden.
Notitie: Statische variabele behoudt de waarde totdat u op de knop Reset op de werkbalk drukt of de werkmap sluit.
Constante variabele
Zoals de naam aangeeft, kan de waarde van deze variabelen tijdens de uitvoering van het programma niet worden gewijzigd. Zodra een constante is gedeclareerd, kan deze niet worden gewijzigd of een nieuwe waarde worden toegewezen.
Het aangeven van een constante kan gebeuren binnen een procedure of op moduleniveau (vooral procedures).
Als u probeert de constante waarde te wijzigen, wordt er een compileerfout gegenereerd.
Veelgestelde vragen
V # 1) Hoe stel ik een openbare variabele in VBA in?
Antwoord: Publieke variabelen worden gedeclareerd voordat een procedure wordt gestart. Het openbare sleutelwoord moet worden gebruikt bij het declareren van een variabele.
Public Total_Marks As Integer
V # 2) Welk type variabelen kan niet buiten de procedure worden gedeclareerd?
Antwoord: Statische variabelen kunnen niet buiten de procedure in VBA worden gedeclareerd en u krijgt een compileerfout.
V # 3) Hoe een variabele in VBA declareren?
Antwoord: Dim sleutelwoord wordt gebruikt om een variabele te declareren. Dim staat voor Dimension.
Dim variabelenaam As Datatype
Vraag 4) Hoe wijs ik een variabele waarde toe aan een cel in VBA?
Antwoord: U kunt de functie Bereik gebruiken.
var1 = 10
Bereik ('C1: C14'). Waarde = var1
Q # 5) Wat zijn variabelen in VBA?
Antwoord: Variabelen zijn als tijdelijke aanduidingen voor de waarden in computeropslag. Variabelen kunnen verschillende soorten waarden bevatten en die waarden kunnen tijdens het uitvoeren van de code veranderen. Elke variabele zou een naam moeten hebben, met behulp van de variabelenaam zal de computer de waarde ophalen die aan die variabele is toegewezen.
V # 6) Moet u een variabele in VBA aangeven?
Antwoord: De aangifte is optioneel in VBA. Als u een variabele niet declareert en deze rechtstreeks in de procedure gebruikt, wordt dit een impliciete declaratie genoemd. Om fouten in de code te voorkomen en voor een betere leesbaarheid, wordt aanbevolen om een variabele expliciet te declareren.
V # 7) Hoe declareer ik meerdere variabelen in VBA?
Antwoord: U kunt meerdere variabelen in één aangifteverklaring declareren. U hoeft alleen de variabelenaam op te geven, gescheiden door komma's in één As-clausule.
wat is het nieuwste besturingssysteem
Dim FirstNo, SecondNo As Integer
U kunt ook verschillende variabelen specificeren in één aangifteverklaring. Elke variabele krijgt het gegevenstype dat is gespecificeerd in de As-clausule na het variabelenaamgedeelte.
Dim a, b As Single, c, d As Double, e As Integer, f As String
V # 8) Wanneer zou er geen verschil zijn tussen dim en privé in VBA?
Antwoord: Als u een bereik op privé-moduleniveau declareert, is er geen verschil tussen het declareren van een variabele als dim of privé. Standaard worden variabelen gedeclareerd met de Geen vallen onder privé. Maar het wordt aanbevolen om privé toe te voegen voor een betere leesbaarheid.
V # 9) Wat is een variabele op moduleniveau?
Antwoord: Variabelen op moduleniveau kunnen privé of openbaar zijn. Privévariabelen zijn beschikbaar voor alle procedures in die module en zijn voor geen enkele andere module zichtbaar. Openbare variabelen zijn zichtbaar voor alle procedures in alle modules in een project.
Gevolgtrekking
Een variabele is cruciaal in elke programmeertaal. In deze tutorial hebben we gezien wat variabelen zijn, hoe we ze declareren en gebruiken in het programma. We hebben ook de Option Explicit-methode onderzocht, die de implementatie van de expliciete verklaring afdwingt.
Verschillende soorten variabel bereik die de gebruikers helpen om te bepalen welke delen van de code de variabele kan worden gebruikt, werden besproken. We leerden het gebruik van statische variabelen die helpen om de waarde van de variabele te behouden en constante variabelen die helpen om de waarde van de variabele ongewijzigd te houden.
Bezoek hier om VBA vanaf het begin te leren
Aanbevolen literatuur
- Excel VBA-zelfstudie - Inleiding tot VBA in Excel
- Excel VBA-array- en array-methoden met voorbeelden
- VBA-gegevenstypen - numerieke en niet-numerieke gegevenstypen in VBA
- Python-variabelen
- Variabelen in C ++
- Java-variabelen en hun typen met voorbeelden
- C # Gegevenstypen en variabelen met voorbeelden
- VBScript-variabelen: variabelen declareren en gebruiken - VBScript Dim