esplicita1
se le variabili non vengono
dichiarate con Dim da programma
VBA assegna automaticamente tipo variabile ( Variant...)
se invece si inserisce a inizio programma Option explicit
diventa obbligatorio dichiarare le variabili usate nel programma:
se non si dichiarano appare messaggio di errore
Option Explicit
Private Sub CommandButton1_Click()
Rem con Option Explicit si esige dichiarazione esplicita
Rem delle variabili usate nel programma
Dim a, b, somma As Integer
a = 10
b = 20
somma = a + b
ListBox1.AddItem ("a+b= 10+20 = 30 " & somma)
End Sub
Private Sub UserForm_Click()
End Sub
esempio precedente senza dichiarazione variabili
esempio precedente , senza
Option Explicit e senza dichiarazione variabili
viene accettato e assegnato tipo variabile
vedi esplicita1.ppt
considerazioni sulla
dichiarazione delle variabili
necessaria se si inserisce Option Explicit
facoltativa se non si inserisce
Private Sub CommandButton1_Click()
Rem senza Option Explicit
Rem dichiarazione variabili facoltativa
Rem a,b dichiarate, somma ,s,t,x non dichiarate
Dim a, b As Integer
a = 10
b = 20
somma = a + b
ListBox1.AddItem ("a+b= 10+20 = 30 " & somma)
s = "stringa1 non
dichiarata"
t = " stringa2 non
dichiarata"
x = s + t ' somma stringhe non
dichiarata
ListBox1.AddItem (s)
ListBox1.AddItem (t)
ListBox1.AddItem (x)
ListBox1.AddItem ("---------")
Call esegue((s), (t), (a), (b))
End Sub
Private Sub UserForm_Click()
End Sub
rem unire e sommare non dichiarate
rem parametri p,q previsti tipo stinga, h,k
tipo integer
Private Sub esegue(p As String, q As String, h As Integer, k As
Integer)
unire = p + q
sommare = h + k
ListBox1.AddItem ("unire 2 stringhe " & unire)
ListBox1.AddItem ("sommare 2 numeri " & sommare)
End Sub
vedi esplicita4.ppt
Option Explicit
Const linea = "-------"
Private Sub CommandButton1_Click()
Rem con Option Explicit si introduce una costante
Rem che sarà riconoscibile in tutte le subroutine
Rem senza doverla nuovamente dichiarare
Rem invece la costante "testo"
non essendo dichiarata
Rem a inizio con Option, deve essere dichiarata in tutte
Rem le subroutine che la usano
Const testo = "commento"
Dim a, b, c, prodotto, somma As Integer
a = 10
b = 20
c = 30
somma = a + b + c
prodotto = a * b * c
ListBox1.AddItem (testo)
ListBox1.AddItem ("somma = " & somma)
ListBox1.AddItem ("prodotto = " & prodotto)
ListBox1.AddItem (linea)
Call esegue1(10, 20, 30)
Call esegue2((a), (b), (c))
Call esegue3(Val(a), Val(b), Val(c))
End Sub
Private Sub esegue1(x As Integer, y As Integer, z As Integer)
Const testo = "commento"
Dim somma1, prodotto1 As Integer
somma1 = x + y + z
prodotto1 = x * y * z
ListBox1.AddItem (testo)
ListBox1.AddItem (somma1)
ListBox1.AddItem (prodotto1)
ListBox1.AddItem (linea)
End Sub
Private Sub esegue2(x As Integer, y As Integer, z As Integer)
Const testo = "commento"
Dim somma1, prodotto1 As Integer
somma1 = x + y + z
prodotto1 = x * y * z
ListBox1.AddItem (testo)
ListBox1.AddItem (somma1)
ListBox1.AddItem (prodotto1)
ListBox1.AddItem (linea)
End Sub
Private Sub esegue3(x As Integer, y As Integer, z As Integer)
Const testo = "commento"
Dim somma1, prodotto1 As Integer
somma1 = x + y + z
prodotto1 = x * y * z
ListBox1.AddItem (testo)
ListBox1.AddItem (somma1)
ListBox1.AddItem (prodotto1)
ListBox1.AddItem (linea)
End Sub
vedi esplicita5.ppt