Variabelen declareren

   

Voor het declareren van variabelen gebruikt u gewoonlijk de instructie Dim. U kunt een declaratie-instructie binnen een procedure plaatsen om een variabele van procedureniveau aan te maken. U kunt de instructie ook boven aan een module in de sectie Declaraties plaatsen, waardoor u een variabele van moduleniveau maakt.

In het volgende voorbeeld wordt de variabele strName aangemaakt en wordt het gegevenstype String opgegeven.

Dim strName As String

Als deze instructie binnen een procedure verschijnt, kan de variabele strName alleen in die procedure worden gebruikt. Als de instructie in de sectie Declaraties van de module verschijnt, is de variabele strName voor alle procedures binnen de module beschikbaar, maar niet voor de procedures in andere modules in het project. Als u v≤≤r deze variabele de instructie Public opneemt, maakt u deze beschikbaar voor alle procedures in het project. Bijvoorbeeld

Public strName As String

Zie de sectie "Naamregels in Visual Basic" in Visual Basic Help voor meer informatie over de naamgeving van variabelen.

Variabelen kunnen als een van de volgende gegevenstypen worden gedeclareerd: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (voor tekenreeksen met variabele lengte), String * length (voor tekenreeksen met vaste lengte), Object of Variant. Als u geen gegevenstype opgeeft, wordt standaard het gegevenstype Variant toegewezen. Met behulp van de instructie Type kunt u ook een door de gebruiker gedefinieerd type maken. Zie voor meer informatie over gegevenstypen de sectie ôSamenvatting gegevenstype" in Visual Basic Help.

In ΘΘn instructie kunt u meerdere variabelen declareren. Als u een gegevenstype wilt opgeven, moet u voor elke variabele een gegevenstype opnemen. In de volgende instructie worden de variabelen intX, intY en intZ als Integer gedeclareerd.

Dim intX As Integer, intY As Integer, intZ As Integer

In de volgende instructie worden intX en intY als Variant gedeclareerd; alleen intZ wordt als Integer gedeclareerd.

Dim intX, intY, intZ As Integer

Het is niet noodzakelijk om het gegevenstype van de variabele in de declaratie-instructie te vermelden. Als u het gegevenstype weg laat, wordt het type Variant toegekend.

De instructie Public

Met de instructie Public kunt u variabelen op public moduleniveau declareren.

Public strName As String

Variabelen public kunnen in alle procedures in het project worden gebruikt. Als een variabele public in een standaardmodule of klassenmodule wordt gedeclareerd, kan deze ook worden gebruikt in projecten met verwijzingen naar projecten waarin de variabele public is gedeclareerd.

De instructie Private

Met de instructie Private kunt u variabelen op private moduleniveau declareren.

Private MyName As String

Variabelen private kunnen alleen door procedures in dezelfde module worden gebruikt.

Opmerking Als u de instructie Dim op moduleniveau gebruikt, is deze gelijk aan de instructie Private. U kunt gebruik maken van de instructie Private om uw programmacode wat duidelijker en beter leesbaar te maken.

De instructie Static

Als u de instructie Static gebruikt in plaats van de instructie Dim, behoudt de gedeclareerde variabele tussen de verschillende oproepen zijn waarde.

De instructie Option Explicit

U kunt in Visual Basic impliciet een variabele declareren door deze in een toewijzingsinstructie te gebruiken. Alle variabelen die impliciet worden gedeclareerd, zijn van het type Variant. Variabelen van het type Variant nemen meer geheugenruimte in beslag dan andere variabelen. U kunt een toepassing efficiδnter maken door variabelen expliciet te declareren met een specifiek gegevenstype. Als u alle variabelen expliciet declareert, verkleint u de kans op naamconflicten en spellingsfouten.

Als u niet wilt dat Visual Basic impliciete declaraties maakt, plaatst u v≤≤r alle procedures in een module de instructie Option Explicit. Een vereiste voor deze module is dat u alle variabelen binnen de module expliciet declareert. Als een module de instructie Option Explicit bevat, treedt een compileerfout op wanneer Visual Basic een variabele tegenkomt die nog niet is gedeclareerd of verkeerd is gespeld.

In de programmeeromgeving van Visual Basic bevindt zich een optie die de mogelijkheid biedt de instructie Option Explicit automatisch in alle nieuwe modules op te nemen. Raadpleeg de documentatie bij uw toepassing als u de omgevingsopties van Visual Basic wilt wijzigen. Met deze optie kunt u overigens geen bestaande programmacode wijzigen.

Opmerking Vaste en dynamische matrices moeten altijd expliciet worden gedeclareerd.

Een objectvariabele voor automatisering declareren

Als u een toepassing gebruikt om de objecten van een andere toepassing te kunnen beheren, moet u een verwijzing naar de typebibliotheek van de andere toepassing maken. Als u een verwijzing hebt gemaakt, kunt u objectvariabelen van het meest geschikte type declareren. Als u bijvoorbeeld vanuit Microsoft Word een verwijzing naar de typebibliotheek van Microsoft Excel maakt, kunt u vanuit Microsoft Word een variabele van het type Werkblad declareren die een Werkbladobject van Microsoft Excel voorstelt.

Als u een andere toepassing gebruikt voor het beheer van Microsoft Access-objecten, kunt u in de meeste gevallen objectvariabelen van het meest geschikt type declareren. U kunt ook het sleutelwoord New gebruiken om automatisch een nieuwe versie van een object te maken. U moet misschien wel aangeven dat het om een Microsoft Access-object gaat. Als u bijvoorbeeld vanuit Microsoft Visual Basic een objectvariabele declareert die een Microsoft Access-formulier voorstelt, moet u onderscheid maken tussen het Form-object van Microsoft Access en het Form-object van Visual Basic. Neem de naam van de typebibliotheek op in de declaratie van de variabele. Bijvoorbeeld:

Dim frmOrders As New Access.Form

Sommige toepassingen herkennen geen afzonderlijke Microsoft Access-objecttypen. Zelfs als u in deze toepassingen een verwijzing naar de typebibliotheek van Microsoft Access opneemt, moet u alle Microsoft Access-objectvariabelen als Object declareren. U kunt ook niet het sleutelwoord New gebruiken om een nieuwe versie van het object aan te maken. In het volgende voorbeeld kunt u zien hoe u vanuit een toepassing die de objecttypen van Microsoft Access niet herkent, een variabele kunt declareren die een versie van het object Application van Microsoft Access voorstelt. De toepassing maakt vervolgens een versie van het object Application aan.

Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")

Raadpleeg de documentatie bij de toepassing om te bepalen welke syntaxis door een toepassing wordt ondersteund.