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