università degli studi di brescia elementi di informatica e … · 2019-08-24 · docente: marco...

44
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****

Upload: others

Post on 23-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I

Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le

Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

leCo

rso di laurea

: Ing

egne

ria Gestio

nale

Elem

enti di inform

atica e prog

rammazione

Elementi di Informatica e Programmazione

Docente: Marco SechiE‐mail: [email protected]

Università degli Studi di Brescia

PROGRAMMAZIONEPROGRAMMAZIONE

Vers. 22/11/2015****

Page 2: 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

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 

2

Funzioni e Oggetti principali in VBA

https://msdn.microsoft.com/en‐us/library/office/jj692818.aspx

Page 3: 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

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:

https://msdn.microsoft.com/en‐us/library/office/jj692818.aspx

Per richiamare una funzione basta digitarne il nome seguito dai parametri che si intende passargli

Variabile=NOMEFUNZIONE(Argomento1, … [ArgomentoN])

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])

Page 4: 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

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:

https://msdn.microsoft.com/en‐us/library/office/ff194068.aspx

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.

Page 5: 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

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

Page 6: 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

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"

Page 7: 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

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 

7

LEN, LEFT, RIGHT, MID, INSTR, SPACE, INSTRREV, UCASE, LCASE, TRIM, LTRIM, RTRIM, REPLACE, SPACE, STRING, CHR, ASC

Funzioni di manipolazione stringhe

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

Page 8: 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

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.

Page 9: 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

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:

Mail="[email protected]"Left(Mail,Instr(Mail,"@")-1) ==> "cormatron"Mid(Mail, Instr(Mail,"@")+1) ==> "libero.it"

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) ==> " "

Page 10: 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

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:

PercorsoCompleto="c:\pioppo\pluto\caio\prg.xlsx"Mid(PercorsoCompleto, Instrrev(PercorsoCompleto,"\")+1) ==> "prg.xlsx"

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)

Nome="mArCo"Ucase(left(Nome,1))+lcase(mid(Nome,2)) ==>"Marco"

Page 11: 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

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*"

Page 12: 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

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.

String(5, "*") ==> "*****"String(5, " ") ==> Space(5)

ASC(Carattere) Restituisce il codice ascii del carattere che è passato come argomento.

Asc("A") ==> 65Asc(vbTab) ==> 9Asc(" ") ==> 32Asc("a") ==> 97

CHR(Numero)La funzione CHR restituisce il carattere il cui codice ascii è passato come argomento.

CHR(65) ==> "A"CHR(9) ==> vbTabCHR(13) & CHR(10) == > vbCrLF

Page 13: 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

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 

13

Function MYREPLACE(ByVal StringaOriginale As String, _StringaDaRimpiazzare As String, _StringaNuova As String) As String

Dim StringaFinale As StringDim ParteSinistra As StringDim ParteDestra As StringDim DoveELaStringaDaRimpiazzare As Long

StringaFinale = ""DoveELaStringaDaRimpiazzare = InStr(StringaOriginale, StringaDaRimpiazzare)While DoveELaStringaDaRimpiazzare > 0

ParteSinistra = Left(StringaOriginale, DoveELaStringaDaRimpiazzare - 1)ParteDestra = Mid(StringaOriginale, DoveELaStringaDaRimpiazzare + Len(StringaDaRimpiazzare))StringaFinale = StringaFinale + ParteSinistra + StringaNuovaStringaOriginale = ParteDestraDoveELaStringaDaRimpiazzare = InStr(StringaOriginale, StringaDaRimpiazzare)

WendMYREPLACE = StringaFinale + StringaOriginale

End Function

ESEMPIO: In origine la funzione Replace non esisteva. Era necessario implementarla sfruttando le altre funzioni disponibili in VBA.

Page 14: 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

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 

14

CLNG, CDBL, FIX, FORMAT, CSTR, CDATE, INT

Funzioni di conversione

CDBL(argomento)Converte, se possibile, la stringa passata come Argomento in double (numero in precisione doppia) altrimenti genera un errore

CDbl("1,002") ==> 1.002CDbl("A") ==> ERRORE: Tipo non corrispondente

CLNG(Argomento) Converte l'Argomento, se è possibile, in un long (numero intero lungo a 32 bit). 

CLng(1.002) ==> 1CLng(#12/31/1899#) ==> 1

In presenza di decimali arrotonda per difetto o per eccesso all'unità più vicina

CLng("1,51") ==> 2CLng("1,5") ==> 2CLng(1.49) ==> 1

Page 15: 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

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.

"#,##0 \L\i\r\e""#,##0 ""Lire"""

format(1000.014,"#,##0.00 \L\i\r\e")format(1000.014,"#,##0.00 ""Lire""") 1000 Lire

Se voglio scrivere delle frasi per evitare di confonderle con le sigle della maschera di formato ogni lettera va scritta facendola precedere con uno \

Page 16: 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

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)

Page 17: 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

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

Cstr(1.002) ==> "1,002"Cstr(#11/26/2005#) ==> "26/11/2005"Cstr(True) ==> "Vero"

Page 18: 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

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 

18CDATE(Argomento) Converte l'argomento passato, se è possibile, in data/ora

CDate(1) ==> #12/31/1899#CDate(0.25) ==> #06:00:00#CDate("01/01/2015") ==> #1/1/2015 0.00#CDate("29/02/2015") ==> ERRORE di run-time '13'

INT(Numero) Simile  a Fix elimina la parte decimale senza arrotondamenti. Differisce per il suo comportamento sui numeri negativi.

Int(-98.3) ==> -99Fix(-98.3) ==> -98

Page 19: 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

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 

19

IIF(Condizione,ValoreSeVero, ValoreSeFalso)

Restituisce il 2° parametro se la Condizione è vera altrimenti il 3° parametro.

iif(Esito>=18,"Superato", "Non superato")

Funzioni di test e logicheIIF, ISEMPTY, ISNUMERIC, ISDATE, ISNULL, IS, NZ

ISEMPTY(Argomento) Restituisce Vero se l'argomento è una variabile di tipo variant alla quale non è stato mai assegnato un valore altrimenti Falso.

Dim XDim Y As Longdebug.print IsEmpty(X) ==> Truedebug.print IsEmpty(Y) ==> False

Page 20: 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

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 

20ISNUMERIC(Argomento) Restituisce Vero se il parametro passato è trasformabile in un numero altrimenti Falso.

IsNumeric("1,51") ==> TrueIsNumeric("1a,51") ==> False

ISDATE(Argomento) Restituisce vero se il parametro passato è trasformabile in un tipo data/ora altrimenti falso.

IsDate("31/02/2015") ==> FalseIsDate("31/12/2015") ==> TrueIsDate(1) ==> False

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!!"

Page 21: 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

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)

Page 22: 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

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

Debug.Print "IsNull(Y) := " & IsNull(Y)Debug.Print "IsEmpty(Y) := " & IsEmpty(Y)Debug.Print "IsNull(X) := " & IsNull(X)Debug.Print "IsEmpty(X) := " & IsEmpty(X)Debug.Print "IsNull(I) := " & IsNull(I)Debug.Print "IsEmpty(I) := " & IsEmpty(I)Debug.Print "IsNull(O) := " & IsNull(O)Debug.Print "IsEmpty(O) := " & IsEmpty(O)Debug.Print "O IS Nothing := " & (O Is Nothing)Y = 1: X = 1: I = 1 ' Valorizzo le variabiliSet O = Application ' Valorizzo un oggettoDebug.Print "-------------------------------"Debug.Print "IsNull(Y) := " & IsNull(Y)Debug.Print "IsEmpty(Y) := " & IsEmpty(Y)Debug.Print "IsNull(X) := " & IsNull(X)Debug.Print "IsEmpty(X) := " & IsEmpty(X)Debug.Print "IsNull(I) := " & IsNull(I)Debug.Print "IsEmpty(I) := " & IsEmpty(I)Debug.Print "IsNull(O) := " & IsNull(O)Debug.Print "IsEmpty(O) := " & IsEmpty(O)Debug.Print "O IS Nothing := " & (O Is Nothing)Debug.Print "-------------------------------"X = NullI = vbNullDebug.Print "IsNull(X) := " & (IsNull(X))Debug.Print "IsNull(I) := " & IsNull(I)

End Sub

ESEMPIO: Utilizzo delle funzioni di test

IsNull(Y) := FalsoIsEmpty(Y) := Vero

IsNull(X) := FalsoIsEmpty(X) := Vero

IsNull(I) := FalsoIsEmpty(I) := Falso

IsNull(O) := FalsoIsEmpty(O) := FalsoO IS Nothing := Vero-------------------------------IsNull(Y) := FalsoIsEmpty(Y) := FalsoIsNull(X) := FalsoIsEmpty(X) := FalsoIsNull(I) := FalsoIsEmpty(I) := FalsoIsNull(O) := FalsoIsEmpty(O) := FalsoO IS Nothing := Falso-------------------------------IsNull(X) := VeroIsNull(I) := Falso

Finestra Immediata

Page 23: 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

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 

23

DATE()Restituisce la data di oggi

NOW() Restituisce la data e l'ora attuale.

TIME()Restituisce l'ora attuale.

Funzioni temporaliDATE, NOW, TIME, DAY, MONTH, YEAR, WEEKDAY, HOUR, MINUTE, SECOND, TIMEVALUE

DAY(Argomento)Restituisce il giorno del mese della data passata come Argomento. 

DataDiNascita=#12/31/1927#Day(DataDiNascita)=31

Page 24: 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

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 

24MONTH(Argomento)Restituisce il mese della data passata come Argomento. 

DataDiNascita=#12/31/1927#Month(DataDiNascita) ==> 12If Month(DataDiNascita)<>Month(DataDiNascita+1) then

msgbox "Sei nato l'ultimo giorno del mese"else

msgbox "Non sei nato l'ultimo giorno del mese"End if

YEAR(Argomento)Restituisce l'anno della data passata come Argomento. 

DataDiNascita=#12/31/1927#If Year(DataDiNascita)<>Year(DataDiNascita+1) then

msgbox "Sei nato l'ultimo giorno dell'anno"else

msgbox "Non sei nato l'ultimo giorno dell'anno"End if

Page 25: 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

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 

25

WEEKDAY(Argomento)Restituisce il giorno della settimana (in numero) della data passata come Argomento. (1  domenica, 2  lunedì etc.). 

if WeekDay(DataDiNascita)=1 Thenmsgbox "Sei nato di domenica"

end if

Lo stesso risultato poteva essere ottenuto con questa sequenza vba:

if Format(DataDiNascita,"mmm")="dom" Thenmsgbox "Sei nato di domenica"

end if

HOUR(Argomento)Restituisce l'ora dell'istante passato come Argomento.

MINUTE(Argomento)Restituisce i minuti dell'istante passato come Argomento.

Page 26: 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

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 

26SECOND(Argomento)Restituisce i secondi dell'istante passato come Argomento.

Secondi=HOUR(Now())*60*60+MINUTE(Now())*60+SECOND(Now())

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")

Page 27: 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

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.

Page 28: 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

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"

Page 29: 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

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

Page 30: 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

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.

Split("Inverno Primavera Estate Autunno") ==> Array("Inverno","Primavera","Estate","Autunno")Split("Inverno;Primavera;Estate;Autunno", ";", 2)==> Array("Inverno","Primavera,Estate,Autunno")

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

Page 31: 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

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.

Join(Array("Inverno","Primavera","Estate","Autunno"),"/")==> "Inverno/Primavera/Estate/Autunno"Join(Array("Inverno","Primavera","Estate","Autunno"))==> "Inverno Primavera Estate Autunno"Join(Array("Inverno","Primavera","Estate","Autunno"),"")==> "InvernoPrimaveraEstateAutunno"

Page 32: 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

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 

32OGGETTI

https://msdn.microsoft.com/en‐us/library/office/ff194068.aspx

Page 33: 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

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 

33applicationRappresenta l'applicazione stessa ovvero EXCEL.

Proprietà Tipo Descrizione

name String Restituisce il nome dell'applicazione ovvero: "MicrosoftExcel"

pathseparator String Separatore delle cartelle in un percorso. Utile se utilizzo altri sistemi operativi diversi da Windows

path String Percorso dell'applicazione ovvero:"C:\Program Files\Microsoft2013\Office15"

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)

Application.EnableEvents = FalseMe.Range("B1") = Target.AddressLocalApplication.EnableEvents = True

End Sub

https://msdn.microsoft.com/en‐us/library/office/ff194565.aspx

PROPRIETA'

Page 34: 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

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

Page 35: 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

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

https://msdn.microsoft.com/EN‐US/library/office/ff841074.aspx

PROPRIETA'

Metodo Descrizione

Close Chiude tutti i files aperti

Open Apre il file indicato come argomentoWorkbooks.Open("C:\MyFolder\MyBook.xlsx")

Add Crea una nuova cartella di lavoro vuota

METODI

Page 36: 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

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 

36Worksheets - SheetsRappresenta l'insieme dei fogli aperti. Sheets differisce da Worksheets poiché contiene anche i fogli grafico.

Proprietà Tipo Descrizione

count Integer Restituisce il numero di fogli del workbook attivo (file)

worksheets(1) Worksheet Primo foglio della cartella di lavoro attiva (thisWorkBook)

Sheets("nome") Worksheet Oggetto che identifica il foglio del workbook attivo che ha quel nome

https://msdn.microsoft.com/en‐us/library/office/ff821537.aspx

PROPRIETA'

Metodo Descrizione

Add Aggiunge dei nuovi fogli prima/dopo altri fogliWorksheets.Add Count:=2, Before:=Sheets(1)

METODI

Page 37: 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

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"

https://msdn.microsoft.com/EN‐US/library/office/ff835568.aspx

PROPRIETA'

Page 38: 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

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

Page 39: 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

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

https://msdn.microsoft.com/en‐us/library/office/ff194464.aspx

PROPRIETA'

Page 40: 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

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 

40

https://msdn.microsoft.com/en‐us/library/office/ff194464.aspx

Metodo Descrizione

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

Page 41: 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

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()"

https://msdn.microsoft.com/en‐us/library/office/ff838238.aspx

PROPRIETA'

Page 42: 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

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

Page 43: 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

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

Key1:=Range("D2"), Order1:= xlDescending,Key2:=Range("C2"), Order2:=xlascending

Application.ScreenUpdating = True

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

Page 44: 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

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.