Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.I Dipartimento di Ingegneria Meccanica e Industriale Dipartimento di Ingegneria Meccanica e Industriale Corso di laurea: Ingegneria Gestionale Elementi di informatica e programmazione Elementi di Informatica e Programmazione Docente: Marco Sechi E‐mail: [email protected]Università degli Studi di Brescia PROGRAMMAZIONE PROGRAMMAZIONE Vers. 22/11/2015****
44
Embed
Università degli Studi di Brescia Elementi di Informatica e … · 2019-08-24 · Docente: Marco Sechi ‐Elementi di informatica e programmazione –Università degli studi di Brescia
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.I
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
3Il VBA mette a disposizione un numero elevato di funzioni che possono essere utilizzate per velocizzare la scrittura dei programmi. L'elenco completo, consultabile online, è il seguente:
Si rammenta che gli argomenti possono essere anche delle costanti (12, "Ciao" …) oppure essere delle variabili (Esito, NatoIl, etc.). La variabilememorizzerà il valore restituito dalla funzione.
Alcune funzioni non restituiscono valori ma eseguono solo delle operazioni (si tratta quindi di Sub). In questo caso non è necessario salvare un risultato in una variabile e pertanto dobbiamo usare una delle due modalità:
NOMESUB Argomento1, … [ArgomentoN]
oppure
CALL NOMESUB(Argomento1, … [ArgomentoN])
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
4Accanto alle funzioni Excel mette a disposizione un insieme di oggettialtrettanto vasto consultabile al seguente indirizzo:
Un oggetto non è altro che una struttura dati associata ad un elemento presente nell'interfaccia del programma (fogli, bottoni, cartelle, celle etc.) Gli oggetti sono dotati di proprietà (caratteristiche) che permettono di operare sull'aspetto o sui contenuti dell'elemento di interfaccia associato.La presenza di metodi (azioni) consente di automatizzare una sequenza di operazioni e modifiche sugli elementi dell'interfaccia.
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
5Infine la capacità di tali oggetti di rilevare determinati eventi (accadimenti) permette di far variare il percorso di esecuzione a secondo di quello che succede rendendo il programma adattabile all'evolversi della situazione.
Quando si digita il codice VBA l'ambiente di sviluppo integrato (IDE) fornisce numerosi suggerimenti che aiutano enormemente la persona che digita il codice.
METODI
PROPRIETA'
EVENTI
OggettoEventi associati
FUNZIONI
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
6
FINESTRA IMMEDIATA
Molto utile risulta la "Finestra immediata" sia per provare i vari comandi durante la fase di studio ma anche nella fase di debug (test del programma per verificarne la correttezza semantica rispetto all'algoritmo che abbiamo deciso di implementare per risolvere un determinato problema)
Esiste un'istruzione VBA che ci consente di scrivere all'interno della finestra immediata:Debug.print "Questo si vede nella finestra immediata"
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
LEFT(argomento,N)La funzione LEFT vuole 2 argomenti. Il 1° è una stringa (esempio "Ciao") mentre il 2° (N) è un intero. LEFT restituisce i primi N caratteri della stringa passata come 1° argomento.
Left("Questa è una frase",4) ==> "Ques"
LEN(Stringa) Restituisce la lunghezza in caratteri della stringa passata come argomento.
len("Questa è una frase ") ==> 19
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
8RIGHT(argomento,N)La funzione RIGHT vuole 2 argomenti. Il 1° è una stringa (esempio "Ciao") mentre il secondo (N) è un intero . RIGHT restituisce gli ultimi N caratteri della stringa passata come 1° argomento.
Right("Questa è una frase",4) ==> "rase"
MID(Stringa,I,N) La funzione MID restituisce, partendo dall'I‐esimo carattere, N caratteri estratti dalla stringa passata come 1° argomento.
mid("Questa è una frase", 3, 8) ==> "esta è u"Mid(Frase,i,1) ==> i-esimo carattere della stringa Frase
Quando ometto il 3° argomento la funzione MID estrae tutti i caratteri a partire dalla lettera di posizione I (compresa).
mid("Questa è una frase", 10) ==> "una frase"mid("Questa è una frase",len("Questa è una frase")-1)==>"se"
Attenzione: La posizione di un carattere in una stringa va calcolata tenendo presente che la numerazione parte da 1 e non da 0 come solitamente avviene in linguaggi come il Javascript o php.
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
9INSTR(StringaDoveCerco,StringaCercata)Restituisce la posizione della prima occorrenza di una stringa (StringaCercata) all'interno di un'altra (StringaDoveCerco). Se non trova niente restituisce 0.
Instr("Questa è una frase fraintesa", "fra") ==> 14Instr("Questa è una frase", "ciao") ==> 0
Esempio: l'utilizzo combinato delle funzioni INSTR, MID, LEFT consente di separare in una mail il dominio dall'identificativo utente:
In realtà esiste un primo argomento opzionale start che consente di specificare da che punto deve iniziare la ricerca:
Instr(15,"Questa è una frase fraintesa", "fra") ==> 20
SPACE(N) Restituisce una stringa composta da N spazi.
Space(5) ==> " "
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
10INSTRREV(DoveCerco,CosaCerco)Restituisce la posizione dell'ultima occorrenza di una stringa (CosaCerco) all'interno di un'altra (DoveCerco). Se non trova niente restituisce 0.
Instrrev("Questa è una frase fraintesa", "fra") ==> 20Instrrev("Questa è una frase", "ciao") ==> 0
Esempio: l'utilizzo combinato delle funzioni INSTRREV e MID consente di separare il nome del file dal percorso delle cartelle:
UCASE(Stringa) - LCASE(Stringa)Ucase restituisce la stringa passata come Argomento in caratteri maiuscoli. Lcase restituisce la stringa passata come Argomento in minuscolo.
Esempio: combinando le funzioni Ucase e Lcase possiamo trasformare il contenuto di una cella in modo che venga scritto tutto in minuscolo esclusa la prima lettera (In vba la funzione StrConv(Nome,vbProperCase) produce lo stesso risultato)
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
11
TRIM(Stringa) RTRIM(Stringa) LTRIM(Stringa)Restituisce l'argomento (di tipo stringa) privo degli spazi iniziali e finali.
Trim(" Questa è bella ") ==> "Questa è bella"
La funzione LTrim elimina dalla stringa passata come argomento gli spazi iniziali.
LTrim(" Questa è bella ") ==> "Questa è bella "
La funzione RTrim elimina dalla stringa passata come argomento gli spazi finali.
RTrim(" Questa è bella ") ==> " Questa è bella"
REPLACE(Stringa, CosaCerco, CosaMetto) Restituisce la stringa ottenuta sostituendo nel 1° argomento tutte le occorrenze della sottostringa CosaCerco con la stringa CosaMetto passata come 3° argomento
Replace("Ciao sono Marco", "o", "*") ==> Cia* s*n* Marc*"
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
12STRING(N,Carattere) Restituisce una stringa composta da N repliche del Carattere passato come 2°argomento.
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
15 FIX(Numero) Elimina la parte decimale del Numero passato come argomento, senza arrotondare
Fix(1.51) ==> 1Fix(1.49) ==> 1
FORMAT(Valore,MascheraFormato) Trasforma il primo parametro Valore secondo le specifiche indicate in MascheraFormato. Nella tabella seguente sono elencati alcuni esempi relativi a formati di tipo numerico
Maschera di formato Esempio Risultato Descrizione
"#,##0.00" format(0.009,"#,##0.00") 0,01 Si osservi: un numero con parte intera pari a zeroviene visualizzato con lo 0 iniziale.
"#,###.00"format(1000.014,"#,##0.00") 1.000,01
Se il numero di cifre decimali è superiore a quello indicato nella maschera di formato allora il numero viene arrotondato per difetto o eccesso a seconda.
format(0.009,"#,###.00") ,01 Si osservi: un numero con parte intera pari a zero viene visualizzato senza lo 0 iniziale
00000 Format(1,"00000") 00001
Segnaposto di cifra. Visualizza una cifra o uno zero. Se l'espressione contiene una cifra nella posizione in cui compare lo 0 nella stringa del formato, tale cifra verrà visualizzata; in caso contrario in tale posizione verrà visualizzato uno zero.
Se voglio scrivere delle frasi per evitare di confonderle con le sigle della maschera di formato ogni lettera va scritta facendola precedere con uno \
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
16Nella tabella sottostante sono elencate le specifiche relative a formati di tipo data/ora
Maschera di formato Esempio Risultato Descrizione
"d" format(#12/02/2005 12.00.23#,"d") 2 Visualizza il giorno come numero senza zero iniziale (1 – 31)."dd" format(#12/02/2005 12.00.23#,"dd") 02 Visualizza il giorno come numero con zero iniziale (01 – 31).
"ddd" format(#12/02/2005 12.00.23#,"ddd") ven Visualizza il giorno abbreviato (dom – sab).
"dddd" format(#12/02/2005 12.00.23#,"dddd") venerdì Visualizza il giorno per esteso (domenica – sabato)
"w" format(#12/02/2005 12.00.23#,"w") 6 Visualizza il giorno della settimana come numero (1 per domenica-7 per sabato).
"ww" format(#12/02/2005 12.00.23#,"ww") 49 Visualizza la settimana di un anno come numero
"m" format(#1/15/2005 12.00.23#,"m") 1Visualizza il mese come numero senza zero iniziale (1 – 12). Se m segue immediatamente h o hh, viene visualizzato il valore relativo ai minuti anziché il mese.
"mm" format(#1/15/2005 12.00.23#,"mm") 01Visualizza il mese come numero con zero iniziale (01 – 12). Se m segue immediatamente h o hh, viene visualizzato il valore relativo ai minuti anziché il mese.
"mmm" format(#1/15/2005 12.00.23#,"mmm") gen Visualizza il mese abbreviato (gen – dic)."mmmm" format(#1/15/2005 12.00.23#,"mmmm") gennaio Visualizza il mese con il relativo nome per esteso (gennaio – dicembre).
"q" format(#12/02/2005 12.00.23#,"q") 4 Visualizza il trimestre dell'anno come numero (1 – 4)."y" format(#12/02/2005 12.00.23#,"y") 336 Visualizza il giorno dell'anno come numero (1 – 366).
"yy" format(#12/02/2005 12.00.23#,"yy") 05 Visualizza l'anno come numero di due cifre (00 – 99).
"yyyy" format(#12/02/2005 12.00.23#,"yyyy") 2005 Visualizza l'anno come numero di quattro cifre (100 – 9999).
"h" format(#12/02/2005 01.02.03#,"h") 1 Visualizza l'ora come numero senza zero iniziale (0 – 23)."hh" format(#12/02/2005 01.02.03#,"hh") 01 Visualizza l'ora come numero con zero iniziale (00 – 23)."n" format(#12/02/2005 01.05.03#,"n") 2 Visualizza i minuti come numero senza zero iniziale (0 – 59).
"nn" format(#12/02/2005 01.05.03#,"nn") 02 Visualizza i minuti come numero con zero iniziale (00 – 59)."s" format(#12/02/2005 01.02.03#,"s") 3 Visualizza i secondi come numero senza zero iniziale (0 – 59).
"ss" format(#12/02/2005 01.02.03#,"ss") 03 Visualizza i secondi come numero con zero iniziale (00 – 59)
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
17 I singoli elementi presentati nella tabella precedente possono essere combinati tra loro come nell'esempio seguente
format(#12/02/2005 01.02.03#,"dddd, d mmmm yyyy \o\r\e hh.nn.ss") ==> "venerdì, 2 dicembre 2005 ore 01.02.03"
Nella successiva tabella sono elencati alcuni esempi relativi a valori di tipo stringaMaschera di formato Esempio Risultato Descrizione
">" format("ciao",">") "CIAO" Applica le maiuscole. Visualizza tutti i caratteri in maiuscolo."<" format("ciao","<") "ciao" Applica le minuscole. Visualizza tutti i caratteri in minuscolo."@" format("ciao","@@@@@@") "ciao " Segnaposto di carattere. Visualizza un carattere o uno spazio. Se la stringa
include un carattere nella posizione in cui compare @ nella stringa di formato, tale carattere verrà visualizzato, in caso contrario in tale posizione verrà visualizzato uno spazio. I segnaposto vengono riempiti da destra a sinistra, a meno che non vi sia un punto esclamativo (!) nella stringa di formato.
"!@" format("ciao","!@@@@@@") " ciao"
CSTR(Argomento) Converte l'Argomento passato in stringa
ISNULL(Argomento) Restituisce Vero se l'argomento passato come parametro è Null. Una variabile X di tipo variant viene inizializzata in modo esplicito con l'istruzione X=Null per evidenziare che non contiene un valore accettabile.
X=Null: IF ISNULL(X) THEN MSGBOX "NULLO!!"
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
21Variabile IS Nothing Non si tratta di una funzione ma di un operatore di confronto applicabile a variabili di tipo Object. Viene utilizzato per testare se una variabile è stata in qualche modo assegnata.
Dim O as ObjectIF (O Is Nothing) Then MsgBox "Mai assegnata"
NZ(Argomento, ValoreSeNullo) Restituisce il 2° parametro ValoreSeArgomentoNullo se il primo Argomento vale Nullaltrimenti ritorna il valore di Argomento. Corrisponde alla seguente sequenza VBA:
iif(IsNull(Argomento), ValoreSeNullo, Argomento)
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
22
Sub ProveIS()Dim X As Variant ' Y non è dichiarataDim O As ObjectDim I As Long
TIMEVALUE(Argomento)Trasforma una stringa contenente un orario nel numero seriale corrispondente pertanto la seguente istruzione
Tra10Secondi=Now()+TimeValue("00:00:10")
indica l'orario tra 10 secondi. Potevo anche scrivere
Tra10Secondi=Now()+CDate("00:00:10")
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
27
RND, SQR, DOEVENTS
Funzioni varie
SQR(Valore)Restituisce la radice quadrata di un numero. Se negativo genera un errore
Sqr(16) ==> 4
RND([Numero]) Genera un numero casuale di tipo single all'interno dell'intervallo [0,1). Se Numero è ‐ negativo genera sempre lo stesso valore‐ zero restituisce l'ultimo valore generato‐ se positivo o omesso genera un nuovo numero casuale
Fix(Rnd()*6)+1 ==> genera un numero intero tra 1 e 6Rnd()*(B-A)+A ==> genera un valore nell'intervallo [A,B)Fix(Rnd()*(B-A+1))+A ==> genera un numero intero tra A e B
Solitamente si utilizza l'istruzione Randomize(numero) per inizializzare la sequenza generata da Rnd. Senza argomenti Randomize utilizza come seme il valore restituito dall'orologio di sistema.
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
28DOEVENTS()DoEvents passa il controllo al sistema operativo. Quando questo ha terminato l'elaborazione sia degli eventi in coda che di tutti i caratteri presenti nel buffer di input della tastiera, ripassa il controllo allo script VBA che riprende la sua esecuzione. DoEvents risulta utile per intercettare un input (ad esempio un click su un checkbox) chel'utente ha eseguito per cancellare l'esecuzione di un processo attivo quando siamo all'interno di un Loop.
Sub AttivaOrologio()Range("C2") = FalseDo While True ' Loop infinito
' C2 è connesso al CheckBox di STOPIf Range("C2") = True Then Exit DoDoEventsRange("B4") = Format(Now, "hh:mm:ss")Application.Wait (Now + TimeValue("00:00:01"))
LoopEnd Sub
Cliccando su "Attiva orologio" la cella "C2" diventa True. Il loop infinito Do While si ferma quando spunto il checkbox "STOP". Application.Waitsospende l'esecuzione di un secondo dopo aver aggiornato l'orario nella cella "B4"
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
29
ARRAY, LBOUND, UBOUND, SPLIT, ISARRAY, JOIN
Funzioni Array
ARRAY(Arg1, Arg2, …, ArgN) Restituisce un array i cui elementi corrispondono agli N valori passati come argomento.
Dim Saluti as VariantSaluti=Array("Ciao","Arriverderci","Ave", "A dopo")
LBOUND(Array [,Dimensione])Restituisce il limite inferiore della dimensione indicata come secondo argomento. Se dimensione è omesso allora viene restituita la primaDim X(-1 to 2, 3 to 4, 5 to 6)LBOUND(X,2) ==> 3LBOUND(X) ==> -1
UBOUND(Array [,Dimensione])Restituisce il limite superiore della dimensione indicata come secondo argomentoDim X(-1 to 2, 3 to 4, 5 to 6)UBOUND(X,3) ==> 6
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
30 SPLIT(Stringa,[Separatore],[NrValori])Restituisce una matrice unidimensionale che contiene come elementi le sottostringhe delimitate dal carattere separatore. Il limite inferiore dell'array restituito è sempre 0 anche se con Option Base ho specificato altro. Il separatore è un qualsiasi Stringa. La ricerca del separatore è di default è case sensitive. Un quarto argomento, qui non illustrato, consente la modifica di tale comportamento predefinito. Se ometto il separatore, viene assunto come delimitatore lo spazio. Se il Separatore è "" oppure non è presente nel parametro Stringa allora Split restituisce una matrice con un singolo elemento contenente l'intera stringa.
ISARRAY(Stringa,Separatore,NrValori)Restituisce vero se l'argomento passato è un array, falso altrimentiDim X(10), YDebug.print IsArray(X) '==> trueDebug.print IsArray(Y) '==> falseY=Split("1;2;3",";")Debug.print IsArray(Y) '==> true
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
31JOIN(Matrice,Separatore)Restituisce una stringa creata unendo gli elementi della matrice in un'unica sequenza di valori separati con il carattere separatore. Il Separatore è una qualsiasi stringa e viene utilizzata per separare le sottostringhe ricavate dagli elementi della matrice. Se omesso, verrà automaticamente utilizzato lo spazio (" "). Se il separatore è la stringa di lunghezza zero ("") tutte le voci dell'elenco verranno concatenate senza alcun delimitatore.
activecell Range E' l'oggetto associato alla cella attiva
thisWorkBook Workbook E' l'oggetto associato alla cartella attiva (in foreground)
activeSheet WorkSheet E' l'oggetto associato al foglio attivo
cursor Long Forma del cursore. Valori costanti ammessi:xlDefault Puntatore di default (cambia a secondo dell'oggetto sottostante)xlIBeam Puntatore I-beam xlNorthwestArrow puntatore Freccia classicohWest.xlWait puntatore di Occupato (hourglass)
EnableEvents boolean Disabilita/Abilità gli eventi.Private Sub Worksheet_Change(ByVal Target As Range)
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
34Proprietà Tipo Descrizione
WorkSheets WorkSheets Insieme dei fogli della cartella corrente
WorkBooks Workbooks Insieme dei files di Excel aperti
UserName String Nome dell'account connesso al sistema
ScreenUpdating Boolean Attiva/disattiva l'aggiornamento del videoapplication.ScreenUpdating=false
DefaultFilePath String Cartella di salvataggio dei files ad esempio:"C:\Users\Marco\Documents"
Metodi Descrizione
Quit Chiude l'applicazione
Calculate Ricalcola il foglio (equivale al tasto F9)
SendKeys Simula la digitazione dei singoli caratteri contenuti nell'argomentoApplication.SendKeys "Ciao"
Doubleclick Simula il doppio click sulla cella attiva (mandando in modalità edit la cella)
Wait Sospende l'esecuzione fino all'ora indicata:application.wait "18:01:23"application.wait now()+timeValue("00:00:10")
GetSaveAsFileName Apre la finestra di dialogo SAVE AS per il salvataggio del file e restituisce il nome dato al file nel caso di conferma, falso altrimenti.
METODI
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
35workbooksRappresenta l'insieme dei file aperti
Proprietà Tipo Descrizione
count Integer Restituisce il numero di file di Excel aperti
workbooks(1) Workbook Prima cartella aperta con Excel
workbooks("nome") Workbook Oggetto che identifica la cartella che ha quel nome
Add Aggiunge dei nuovi fogli prima/dopo altri fogliWorksheets.Add Count:=2, Before:=Sheets(1)
METODI
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
37workbookOggetto che rappresenta uno dei files aperti
Proprietà Tipo Descrizione
Name String Restituisce il nome del filethisWorkBook.name
WorkSheetsSheets
Worksheets Collezione contenente tutti i fogli della cartella associata al WorkBook. Nell'esempio sottostante il numero di fogli della cartella correntethisWorkBook.WorkSheets.count
FullName String Nome completo del file con tutto il percorsothisWorkBook.FullName
ActiveSheet WorkSheet E' l'oggetto associato al foglio attivo della cartella di lavoro del WorkBook utilizzatothisWorkBook.ActiveSheet.name
Parent Object Restituisce l'oggetto padre. Ad esempio il padre della cartella di lavoro corrente è Application come si può verificare nell'esempio sottostantethisWorkbook.parent.name "Microsoft Excel"
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
38
Metodo Descrizione
Close Chiude la cartella di lavoro associata all'oggetto WorkBookWorkbooks(1).Close savechanges:=True FileName:="Caio.xlsx"Workbooks(1).Close True, "Caio.xlsx" ' Equivalente
Activate Porta il file associato all'oggetto WorkBook in foreground (lo attiva!)
Save Registra su disco le modifiche apportate in memoria alla cartella di lavoro associata al nostro oggetto WorkBook.
SaveAs Metodo analogo al menu "Salva con Nome" ma non apre la finestra di dialogo.Set NewBook = Workbooks.Add ' Nuova CartellaDo
fName = Application.GetSaveAsFilename Loop Until fName <> False NewBook.SaveAs Filename:=fName
SendMail Invia la cartella di lavoro associata per posta. Per funzionare devo avere un client di posta configurato
METODI
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
39
worksheetE' l'oggetto che rappresenta un foglio di Lavoro.
Proprietà Tipo Descrizione
Cells Cells Restituisce l'insieme delle celle del foglioactiveSheet.Cells(1,1)="Ave"
Name String Nome del foglioactivesheet.name
Shapes Collection Collezione delle forme presenti sul foglio
Visible Boolean Consente di occultare il foglioactiveSheet.visible=false Nascondo il foglio
Range Object Intervallo di celle del foglioactiveSheet.Range("A1").FormulaLocalWorkSheets("Foglio1").Range("A2")=91
Copy Copia il foglio prima/dopo un altro foglioWorksheets("Sheet1").Copy After:=Worksheets("Sheet3")
Select Porta il foglio in foreground. E' equivalente ad activate.
Delete Richiede se il foglio deve essere rimossoWorksheets("Foglio2").delete
Move Sposta il foglio prima/dopo un altro foglioWorksheets("Foglio1").Move After:=Worksheets(3)
METODI
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
41RangeE' l'oggetto che rappresenta un sotto insieme di celle di un foglio di Lavoro.
Proprietà Tipo Descrizione
Cells Range Restituisce l'insieme delle celle contenute nell'intervallo del RangeRange("B2:C4").Cells(1,1) punta alla cella B2
AddressAddressLocal
String Restituisce l'indirizzo delle celle nel linguaggio delle macro e di quello dell'utenteRange("A1").AddressLocal $B$2
count Integer Numero di elementi nella collezione (range)font Font Restituisce un oggetto font che rappresenta il carattere utilizzato
per quell'intervallorange("A2").Font.Name "Calibri"range("A2").Font.Name=11 imposto la dimensione
Value Variant Valore o il risultato della formula presente all'interno della cellaactiveSheet.Range("A1").value risultato
FormulaFormulaLocal
String Formula contenuta nella cella secondo la lingua interna usata dalle macro mentre la seconda rispetto a quella utilizzata dall'interfaccia utenterange("A1").Formula =RAND()range("A1").Formulalocal =CASUALE()range("A1").FormulaLocal="=CASUALE()"
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
42Proprietà Tipo Descrizione
Interior Interior Restituisce l'oggetto che rappresenta gli aspetti interni di ogni cella dell'intervallorange("A1").Interior.Color =rgb(255,0,0) colora di rosso lo sfondo
Borders Borders Restituisce l'oggetto che rappresenta il bordo di ogni cella dell'intervallorange("A1").Borders.Color =rgb(0,255,0)range("A1").Borders(xlEdgeLeft).LineStyle=xlDashDotDotrange("b2").Borders(xlEdgeBottom).Weight =xlthick
METODI
Metodo Descrizione
ClearContents Pulisce le formule contenute all'interno dell'intervalloCells.clearcontents pulisce l'intero intervallo dalle formule
Clear Pulisce l'intero contenuto dell'intervallo.
Copy Copia il contenuto delle celle dell'intervalloRange("A2").Copy
PasteSpecial Incolla a seconda dell'opzione il contenuto della clipboard (del precedente copy)range("B6").PasteSpecial xlPasteAll copia tuttorange("B8").PasteSpecial xlPasteFormulas solo formularange("B10").PasteSpecial xlPasteValues solo il risultato
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
43
Metodo Descrizione
cut Equivalente del taglia. Utile per spostare il contenuto di un testorange("B2").cutActiveSheet.Paste Destination:=Range("A9")OppureActiveSheet.Paste Range("A9")
Sort Riordina il contenuto dell'intervallo.range("C2:C7").Sort Range("C2") ordino in modo crescenteApplication.ScreenUpdating = falserange("B2:D8").Sort
Delete Elimina un intervallo di celle colmando lo spazio liberato con le celle ubicate in posizioni adiacenti a seconda dell'opzioni applicateRange("B:D").Delete elimina le colonne B, C e D
Insert Inserisce un intervallo di celle spostando quelle originali nelle colonne/righe adiacenti a seconda dell'opzione utilizzatarange("B:B").Insert Inserisce una nuova Colonna in corrispondenza della seconda
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.IDipa
rtim
ento di Ing
egne
ria M
eccanica e In
dustria
le –Co
rso di laurea
: Ing
egne
ria Gestio
nale
44
Metodo Descrizione
Select Seleziona l'intervallo di celle. Qualsiasi azione utente successiva verrà applicata alla selezione corrente.