Il VBScript è un derivato del Visual Basic, e le variablili si comportano quasi nello stesso modo. Per dichiararle si usa l'istruzione Dim. Ad esempio
Dim variabile1
Dim variabile2
ecc.
Oppure
Dim variabile1, variabile2, ecc.
Chi è abituato ad altri linguaggi sa che dichiarando una variabile bisogna anche definire il tipo, cioè se conterrà un numero, una stringa, una data ecc.
In VBScript questa distinzione non c'è: non è necessario dichiarare il tipo delle variabili. La gestione di un numero o di una stringa viene affidata all'interprete VBScript. Questo rende molto più semplice programmare, ma bisogna stare attenti, come nel prossimo esempio:
<script language="VBScript">
<!--
dim a,b,c
a=inputbox("Primo Numero:")
b=inputbox("Secondo Numero:")
c=a+b
document.write c
//-->
</script>
Nell'esempio, assegno i valori alle variabili a e b attraverso le InputBox, cioè finestre di dialogo che chiedono all'utente di inserire un valore. Se assegno il valore 3 la prima volta e 5 la seconda, ci si aspetta che la riga "document.write c" stampi il valore 8 ed invece visualizza 35.
Questo perché a e b vengono interpretate come stringhe, e il segno + invece di fare la somma concatena le 2 stringhe. Per risolvere il problema bisogna convertire le variabili da stringa a numerico.
Attenzione: i tipi non vanno dichiarati ma esistono e sono:
- Boolean
Può contenere True o False. - Byte
Contiene un intero compreso tra 0 e 255. - Integer
Contiene un intero compreso tra -32.768 e 32.767. - Currency
Contiene un valore compreso tra -922.337.203.685.477,5808 e
922.337.203.685.477,5807. - Long
Contiene un intero compreso tra -2.147.483.648 e 2.147.483.647. - Single
Contiene un numero in virgola mobile e precisione singola compreso
tra -3,402823E38 e 3,402823E38 - Double
Contiene un numero in virgola mobile e precisione doppia compreso
tra -1,79769313486232E308 e 1,79769313486232E308 - Date
Contiene un numero che rappresenta una data compresa tra l'1 gennaio dell'anno 100 e il 31 dicembre del 9999. - String
Contiene una stringa di lunghezza variabile composta da un massimo di circa 2 miliardi di caratteri. - Object
Contiene un oggetto.
La conversione dei tipi viene gestita automaticamente dal VBScript quando è chiara. Nell'esempio precedente, se si facesse la sottrazione il risultato sarebbe corretto:
<script language="VBScript">
<!--
dim a,b,c
a=inputbox("Primo Numero:")
b=inputbox("Secondo Numero:")
c=a-b
document.write c
//-->
</script>
Nel primo esempio, si ha il + che è utilizzato sia per la somma che per la concatenazione. Quindi a e b non vengono convertite in tipo numerico, ma sono lasciate in tipo stringhe. Per forzare questa conversione si utilizza la funzione Cint:
<script language="VBScript">
<!--
dim a,b,c
a=inputbox("Primo Numero:")
b=inputbox("Secondo Numero:")
c=Cint(a)+Cint(b)
document.write c
//-->
</script>
L'istruzione dim serve a dichiarare una variabile, ma questa dichiarazione non è obbligatoria: il programma funzionerebbe anche senza la riga "dim a,b,c". Ciò rende la programmazione ancora più veloce perché non bisogna dichiarare le variabili, quando occorrono basta definirle.
Quando si realizza un programma complicato è consigliabile usare il comando "Option Explicit" all'inizio del programma Questo comando obbliga la dichiarazione delle variabili ed è utile se si sbaglia a scrivere il nome di una variabile. Infatti, se sbaglio il nome questa non esiste e si ha un errore.
<script language="VBScript">
<!--
Option Explicit
dim a,b,c
a = inputbox("Primo Numero:")
b = inputbox("Secondo Numero:")
c = Cint(a)+Cint(b)
document.write c
//-->
</script>
Quando si sceglie il nome di una variabile bisogna tener presenti le seguenti regole:
- Deve iniziare con una lettera dell'alfabeto.
- Non può includere punti e spazi.
- Non deve essere composta da più di 255 caratteri.
- Non c'è differenza tra lettere maiuscole e minuscole.
C'è poi la regola non obbligatoria di dare dei nomi logici alle variabili e così una variabile che deve contenere la data di nascita si potrà chiamare dtData_Di_Nascita, dove dt indica che è di tipo data. Questo permette di realizzare programmi più leggibili.