Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
htm
Dalla Versione 97 in poi Office presenta un ambiente di sviluppo completo chiamato Editor di
Visual Basic, con il quale è possibile creare, modificare, fare il debug ed eseguire codice associato
ai documenti Microsoft Office. Per aprire l’editor di Visual Basic fare clic sul pulsante Editor di
Visual Basic sulla barra degli strumenti di Visual Basic. Se non vedete la barra come viene
mostrata qui sotto dovete selezionarla dal menu visualizza/barra degli strumenti mettere il segno
spunta ciccando a fianco della voce Visual Basic e subito comparirà la barra che vedete qui sotto
Si può usare la finestra delle Proprietà per impostare le proprietà di un oggetto al momento della sua
progettazione. La finestra delle proprietà è molto utile mentre si sta laovorando con una finestra
1
dialogo personalizzata e un controllo ActiveX. Per molti oggetti, comunque, è più facile impostare
queste proprietà durante la fase do progettazione, mediante i comandi dell’interfaccia utente.
La Gestione progetti
Nota In Word, poiché il modello Normal è disponibile per ogni documento di Word, c'è sempre un
progetto per tale modello nella Gestione progetti
All'interno di un progetto, ci possono essere oggetti a cui sono associati eventi, finestre di dialogo
personalizzate (chiamate form nella Gestione progetti), moduli standard, moduli di classe, e
riferimenti.
http://web.tiscali.it/sibiscpoint/vb_office/editorvb_2.htm
Suggerimento Le cartelle nella Gestione progetti suddividono gli elementi del progetto in
categorie- Se non si vedono cartelle fare clic sul pulsante Espandi/comprimi cartelle posto nella
parte alta della finestra Gestione progetti.
In Gestione progetti, c'è un progetto per ciascuna cartella dì lavoro, documento, modello, o
presentazione sia aperta che referenziata. In ogni progetto si possono trovare oggetti (come oggetti
Documento, oggetti Cartella di lavoro e oggetti Foglio di lavoro) che riconoscono eventi; moduli
(chiamati anche UserForms), che contengono sia la parte grafica delle finestre di dialogo
personalizzate che il codice che controlla come l'utente interagisce con una particolare finestra di
dialogo; moduli standard che contengono codice che non è associato con un particolare oggetto o
modulo; i moduli di classe, che definiscono informazioni su un tipo di oggetto personalizzato;
infine, riferimenti ad altri progetti- Per vedere il codice contenuto in un modulo o il codice associalo
a un oggetto o ad un modulo, selezionare l'elemento nella Gestione progetti, quindi fare clic sul
pulsante Visualizza codice in alto nella Gestione progetti. Per vedere l'interfaccia utente di un
oggetto o di un modulo particolare, fare clic sull'oggetto nella Gestione progetti, quindi fare clic
sul pulsante Visualizza oggetto in alto nella Gestione progetti.
2
La finestra Codice
Per vedere il codice di un progetto, visualizzare la finestra Gestione progetti, selezionare l'elemento
che contiene il codice e quindi fare clic sul pulsante Visualizza codice in alto nella Gestione
progetti.
Suggerimento Se si desidera vedere più di una procedura alla volta all'interno delta finestra de!
codice, selezionare la casella di controllo Visualizza modulo intero nella scheda Editor , della
finestra di dialogo Opzioni (menu Strumenti). Disattivare questa casella di controllio per vedere
soltanto una procedura alla volta.
Si può navigare all'internmo della finestra del codice utilizzando le voci elencate nelle caselle
Oggetto e Routine. Scegliere Generai da Oggetto e un nome da Routine per analizzare una
procedura che non è associata ad uno specifico evento. Nella casella Oggetto, fare clic su un oggetto
e quindi fare clic su un nome di evento nella casella Routine per vedere il codice che viene eseguito
quando si verifica uno specifico evento.
rivisualìzzare le barre degli strumenti Debug, Modifica, Standard e UserForm fare clic
col pulsante destro del mouse sulla barra dei menu dell'Editor di Visual Basic, e quindi
fare clic sul nome della barra degli strumenti che si vuole visualizzare.
• Se si sta lavorando solo sul codice di un modulo standard e non si desidera visualizzare il
resto del codice del progetto o del codice di altri progetti, si può chiudere la Gestione
progetti. Per riaprire la Gestione progetti, fare clic su Gestione progetti nel menu
Visualizza.
Registrazione di macro
E possibile usare il registratore di macro per tradurre i comandi dell'interfaccia
utente in codice Visual Basic. Registrare una semplice macro può costituire un
inizio per la creazione di macro più complesse, e può aiutare ad acquisire familiarità
con gli oggetti, le proprietà e i metodi di un'applicazione.
5 Sulla barra degli strumenti Interrompi, fare clic sul pulsante Interrompi
Registrazione.
La macro è stata registrata. Per vedere il codice relativo, puntare su Macro nel menu Strumenti, e
quindi fare clic su Macro. Nella finestra di dialogo Macro, selezionare il nome di macro
approprialo, quindi fare clic su Modifica.
Suggerimento Se non si vede nessuna cartella nella Gestione progetti, fare clic sul pulsante
Espandi/comprimi cartelle per visualizzarle.
Dopo aver trovato l'oggetto che contiene il codice, fare doppio clic sullo stesso per visualizzare le
procedure che contiene. E possibile usare questo metodo per esaminare sia le procedure scritte da
zero, sia le macro registrate.
Dove una macro viene registrata dipende da quale locazione si è specificata nella casella
Memorizza la macro in nella finestra di dialogo Registra macro quando si è proceduto alla sua
creazione. In Microsoft Excel, se si sceglie Questa cartella dì lavoro nella casella Memorizza la
macro in quando si è registrata una macro. questa verrà memorizzata in Macrol, nella cartella
Moduli del progetto per la cartella di lavoro per cui si è registrata la macro. In Word, se si è fatto
clic su Tutti i documenti (Normal.dot), nella casella Memorizza la macro in, quando si è
registrata la macro, la macro sarà memorizzata nel modulo NuoveMacro nella cartella Moduli del
progetto Normnal. Se in PowerPoint si è fatto clic sul nome della presentazione attiva nella casella
Memorizza la macro in, quando si è registrata la macro, questa sarà memorizzata in Macro1 nella
cartella Macro del progetto per la presentazione nella quale la macro è stata registrata.
Suggerimento Se si vuoi vedere più di una procedura alla volta nella finestra codice, accertarsi
che la casella di controllo Visualizza modulo intero sia selezionata nella scheda Editor della
4
finestra di dialogo Opzioni (menu Strumenti). Altrimenti, si dovrà usare la casella Routine, nella
finestra del codice, per spostarsi da una procedura ad un'altra.
http://web.tiscali.it/sibiscpoint/vb_office/editorvb_3.htm
Per creare un modulo standard vuoto, selezionare la finestra Gestione progetti, scegliere il
progetto a cui si vuole aggiungere il modulo, e quindi fare clic su Modulo nel menu Inserisci.
Per aprire un modulo standard esistente, selezionare il modulo nella Gestione progetti e quindi fare
clic sul pulsante Visualizza codice.
Per aggiungere una procedura a un modulo, selezionare il modulo all'interno di Gestione progetti,
fare clic su Routine nel menu Inserisci, selezionare le opzioni desiderate nella finestra di dialogo
Aggiungi routine, quindi fare clic su OK. Per ulteriori informazioni riguardo le opzioni nella
finestra di dialogo, premere FI mentre la finestra di dialogo è visualizzata. Per esempio digitare
Test1 nella casella Nome della finestra di dialogo, fare clic su Sub sotto Tipo, fare clic su Public
sotto Area di validità e quindi OK. La seguente procedura apparirà nel vostro modulo.
End Sub
Dopo aver aggiunto una procedura a un modulo, si può aggiungere del codice.
L'esempio che segue aggiunge una istruzione che visualizza una finestra di
messaggio.
Public Sub Testit)
End Sub
Se si vuole scrivere del codice che venga automaticamente eseguito quando si verifica un
particolare evento (per esempio, quando viene aperto un documento, viene ricalcolato un foglio di
lavoro o viene premuto un pulsante in una finestra di dialogo) si deve scrivere una procedura
associata all'evento per l'oggetto o per il modulo. Per informazioni generali sulla scrittura di
procedure evento si veda "Scrivere codice per rispondere agli eventi" più avanti in questo capitolo.
Per informazioni specifiche riguardo alla scrittura di procedure evento per finestre di dialogo
personalizzate e controlli ActiveX si veda il Capitolo 12, "Controlli ActiveX e finestre di dialogo."
5
Qual è la differenza tra una macro e una procedura?
Sebbene i termini macro e procedura siano a volte usati indifferentemente, essi hanno in realtà
significati differenti. Procedura è il termine più vasto; si applica ad una unità di codice racchiuso tra
le istruzioni Sub e End Sub o tra le istruzioni Function e End Function. Macro è un termine
specifico che si applica soltanto a procedure Sub pubbliche che non richiedono argomenti. Tutte le
macro sono procedure, ma non tutte le procedure sono macro. Tutte le procedure che vengono
generate con il registratore di macro e tutte le procedure che è possibile eseguire dalla finestra di
dialogo Macro delle applicazioni Office sono macro.
Sub DisplayWelcome()
MsgBox "Melcome”
End Sub
Una procedura Function è una unità di codice racchiusa tra le istruzioni Function e End Function.
Come una procedura Sub, una procedura Function esegue un preciso compito. A differenza della
procedura Sub, tuttavia essa restituisce anche un valore. Il seguente esempio mostra una procedura
Function.
Function AddThree(OnginalVa1ue As Long)
AddThree = OriginalValue + 3
End Function
End Sub
Private Function AddThree(OriginalVa1ue As Long)
AddThree = OriginalValue + 3
6
End Function
End Sub
AddThree = OriginalValue + 3
End Function
Se non si usa ne la parola chiave Public ne la parola chiave Private per dichiarare una
procedura, la procedura si intende, implicitamente, pubblica. Quindi anche i seguenti sono
esempi sono di procedure pubbliche.
Sub Test1()
MsgBox " Questa è la procedura Testi in esecuzione "
End Sub
Function AddThree(OriginalValue As Long)
AddThree = OriginalValue + 3 End
Function
Sebbene non sia obbligatorio utilizzare la parola chiave Public quando si crea una procedura
di tale tipo, è consigliabile esplicitarla al fine di rendere immediatamente riconoscibili le
procedure pubbliche da quelle privale. Per ulteriori informazioni, vedere "Public o Private”
nella Guida in linea.
Const Pi = 3.14159
coneBase = Pi * radius ^ 2
coneCirc = 2 * Pi * radium
7
ConeSurface = coneBase + coneSide End Functìon
Le informazioni che si devono fornire a una procedura Sub o ad una procedura Function affinché
svolgano il loro compito (radius e height nell'esempio precedente) vengono passate sotto forma di
argomenti.
Il valore di ritorno di una procedura Function può diventare parte di una espressione più ampia. Per
esempio la seguente espressione utilizza il valore di ritorno delle funzioni ConeSurface e
ScoopSurface per eseguire il suo calcolo.
==========================================================
Questa UDF [(User Defined Function) is simply a function that you create yourself with VBA] fa
quello che chiedi e funziona sia coi numeri che con le stringhe, inoltre c'è un controllo di congruità
dei valori passati, da usarsi come da esempi:
In una cella:
=ucut(B5;6;10)
=ucut(B4;"fase";"moto")
miaVar2=ucut(miaVar1;6;10)
miaVar2=ucut(miaVar1;"fase";"moto")
'by scossa
uCut = IIf(vVal > vMax, vMax, IIf(vVal < vMin, vMin, vVal))
Else
uCut = CVErr(Excel.xlErrNum)
End If
End Function
==========================================================
La funzione è questa
Public Function f_cut(numero, valore, minimo, massimo)
f_cut = WorksheetFunction.Max(WorksheetFunction.Min(0.0025 * numero * valore, massimo),
minimo)
End Function
8
9