# VBScript

VBScript is een scripttaal, ontwikkeld door Microsoft. De taal is een subset van Visual Basic (VB). VBScript werd vooral aangewend door systeembeheerders die in de taal een krachtiger hulpmiddel vinden voor automatisering dan de batchbestanden die sinds de jaren 70 bestaan. Tegenwoordig is er een alternatief op de aloude opdrachtprompt: Powershell, dat standaard wordt meegeleverd sinds Windows 7.
VBScript kan worden gebruikt in Active Server Pages in een webomgeving. De code kan ook op zichzelf worden uitgevoerd op het Windows-platform met behulp van wscript.exe in een GUI-omgeving of cscript.exe in een CLI-omgeving. De broncode kan worden opgeslagen in de extensies ".vbs", ".vbe", ".wsf" en ".wsc" (Als component voor een script in XML-vorm). Ook is er de mogelijkheid om de wscript.exe-instellingen geautomatiseerd te veranderen met een ".wsh"-bestand. De taal kan ook gebruikt worden in de webbrowser Internet Explorer als cliënt-sided script en alternatief voor JavaScript. Ten slotte kan VBScript gebruikmaken van WMI (Windows Management Instrumentation) en WQL (Windows Management Instrumentation Query Language). De laatste versie van VBScript is versie 6.

## Mogelijkheden en beperkingen

VBScript is een scripttaal met een aantal beperkingen. Voor een deel kunnen die beperkingen worden opgelost door gebruik te maken van standaard ActiveX-componenten. VBScript is bijvoorbeeld niet geschikt om met binaire bestanden (ter onderscheid van tekstbestanden) te werken. Door gebruik te maken van de ADODB.Stream, ADODB.Recordset en Microsoft.XMLDOM-componenten is echter bijna alles mogelijk.

## Gegevenstypes in VBScript

VBScript kent geen echte gegevenstypes, alle gegevenstypes zijn Variant. Daaronder zijn er wel subtypen gedefinieerd. Dat levert soms problemen op als VBScript communiceert met een DLL die echte datatypes gebruikt.
Vanaf versie 5 kunnen classes worden gedefinieerd, maar van objectgeoriënteerd programmeren is geen sprake.
| Constante | Waarde | Engelse omschrijving |
| vbEmpty | 0 | Empty (uninitialized) |
| vbNull | 1 | Null (no valid data) |
| vbInteger | 2 | Integer |
| vbLong | 3 | Long integer |
| vbSingle | 4 | Single-precision floating-point number |
| vbDouble | 5 | Double-precision floating-point number |
| vbCurrency | 6 | Currency |
| vbDate | 7 | Date |
| vbString | 8 | String |
| vbObject | 9 | Automation object |
| vbError | 10 | Error |
| vbBoolean | 11 | Boolean |
| vbVariant | 12 | Variant (used only with arrays of Variants) |
| vbDataObject | 13 | A data-access object |
| vbByte | 17 | Byte |
| vbArray | 8192 | Array |

## Hello world

De eenvoudigste code voor een "Hello World"-bericht (op te slaan als .vbs-bestand en uit te voeren met cscript.exe of wscript.exe):
Uitgebreider voorbeeld dat MsgBox als functie gebruikt, waarbij een waarde wordt geretourneerd, en het gebruik van drie parameters waaronder constantes voor de tweede parameter:
Constanten voor berichttypes:
| Constante | Waarde | Engelse omschrijving | Icon |
| vbCritical | 16 | Critical message | Rode cirkel met kruis |
| vbQuestion | 32 | Warning query | Blauwe cirkel met vraagteken |
| vbExclamation | 48 | Warning message | Gele driehoek met uitroepteken |
| vbInformation | 64 | Information message | Blauwe cirkel met uitroepteken |
Constanten voor knoppen:
| Constante | Waarde | Knoppen |
| vbOKOnly | 0 | OK (default) |
| vbOKCancel | 1 | OK en Annuleren |
| vbAbortRetryIgnore | 2 | Stoppen, Opnieuw en Negeren |
| vbYesNoCancel | 3 | Ja, Nee en Annuleren |
| vbYesNo | 4 | Ja en Nee |
| vbRetryCancel | 5 | Opnieuw en Annuleren |

## Externe link

* (en) VBScript op MSDN
* ↑ (en) Problemen met DLL-bestanden