28/02/2014 Copyright V. Moriggia

Documenti analoghi
VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA Principali Comandi

Excel & VBA. Excel e Visual Basic for Application

Excel & VBA. Excel e Visual Basic for Application

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9

VISUAL BASIC FOR APPLICATION

5 Array Cicli iterativi Contenuto di cella 28/02/2014 Copyright V. Moriggia 1

Automazione Excel con Visual Basic (base)

IMPOSTAZIONI DI EXCEL. Per rendere disponibile l ambiente di sviluppo di Visual Basic for Application in Excel:

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Visual Basic For Application Guida Pratica per Esempi

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 13

OGGETTO RANGE DI CELLE. Una cella o un gruppo di celle in un foglio di lavoro di Excel è un oggetto di tipo Range.

Linguaggio C - sezione dichiarativa: costanti e variabili

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione al Foglio Elettronico

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Struttura logica di un programma

Programmazione in Excel con il linguaggio Visual Basic

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

Introduzione al Foglio Elettronico

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

IL LINGUAGGIO Visual Basic

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Programmazione web lato client con JavaScript. Marco Camurri 1

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Linguaggi di programmazione

Somma di numeri binari

Formule e funzioni. Fondamenti di informatica. Formule e funzioni. Formule e funzioni - errori. Formule e funzioni - errori

AREA RETTANGOLO LIRE IN EURO

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

5 - Istruzioni condizionali

Rimuovere la password dalle protezioni di foglio e cartella in Excel

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Programmazione in Java (I modulo)

AMBIENTE EXCEL CALCOLO DEL RESTO DELLA DIVISIONE FRA NATURALI

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

3. La sintassi di Java

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono:

Laboratorio con DERIVE

Sviluppare un programma in FORTRAN

EXCEL: FORMATTAZIONE E FORMULE

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

per immagini guida avanzata Modificare numeri e date Geometra Luigi Amato Guida Avanzata per immagini Excel

Il linguaggio C. Notate che...

MICROSOFT EXCEL FORMULE E FUNZIONI

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

CORSO DI INFORMATICA. CL3 - Biotecnologie

Laboratorio Informatica

Programmazione in Python. Moreno Marzolla

Dall algoritmo al programma

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

EXCEL: FORMATTAZIONE E FORMULE

Esercizi Programmazione I

Costrutti condizionali e iterativi

Corso di Informatica. Access. Struttura tabella. Tabelle - esempi 11/01/2008

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Fare calcoli e grafici con Excel

Introduzione a Visual Basic Lezione 2 Cicli e anomalie

Matematica in laboratorio

Verifica della correttezza formale del numero di partita IVA

MS Access: Tutorial Tabelle, Relazioni

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Classe 1C E-book di informatica Marco Ciani

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

DAL DIAGRAMMA AL CODICE

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Transcript:

Informatica per la Finanza 3 Le variabili in VBA Altri I/O 28/02/2014 Copyright 2005-2007 V. Moriggia 1 28/02/2014 3.2 Le variabili in VBA V. Moriggia 1

28/02/2014 3.3 Dichiarazione di variabili in VBA Una variabile può essere utilizzata immediatamente senza essere dichiarata Una variabile è sempre inizializzata a zero (in alcuni casi a vuoto ) Per imporre la dichiarazione esplicita: Option Explicit 28/02/2014 3.4 Dichiarazione di variabili in VBA La dichiarazione esplicita di una variabile si ottiene con il comando Dim nomevariabile Il tipo predefinito di default è il Variant altri tipi elementari sono: Integer: Dim nomevariabile as Integer Long: Dim nomevariabile as Long Double: Dim nomevariabile as Double String: Dim nomevariabile as String V. Moriggia 2

28/02/2014 3.5 Tipi di dati Tipo di dato Spazio Intervallo Byte 1 byte Da 0 a 255 Boolean 2 byte True o False Integer 2 byte Da -32.768 a 32.767 Long (intero lungo) 4 byte Da -2.147.483.648 a 2.147.483.647 Single 4 byte Da -3,402823E38 a -1,401298E-45 per valori negativi; da (virgola mobile a precisione semplice) 1,401298E-45 a 3,402823E38 per valori positivi Double 8 byte Da -1.79769313486231E308 a -4,94065645841247E-324 per (virgola mobile a precisione doppia) valori negativi; da 4,94065645841247E-324 a 1,79769313486232E308 per valori positivi. Currency (intero diviso) 8 byte Da -922.337.203.685.477,5808 a 922.337.203.685.477,5807 Decimal 14 byte +/-79.228.162.514.264.337.593.543.950.335 senza virgola; +/- 7,9228162514264337593543950335 con 28 decimali; il numero minore diverso da zero è +/-0,0000000000000000000000000001 Date 8 byte Dall'1 gennaio 100 al 31 dicembre 9999 Object 4 byte Qualsiasi riferimento Object String (lunghezza variabile) 10 byte+ Da 0 a circa 2 miliardi String (lunghezza fissa) Lungh. str. Da 1 a circa 65.400 Variant (con numeri) 16 byte Qualsiasi valore numerico fino all'intervallo di un Double Variant (con caratteri) 22 byte+ Stesso intervallo di String a lunghezza variabile Definito dall'utente N. richiesto L'intervallo di ciascun elemento è identico a quello del relativo tipo di (utilizzando Type) dati sopraelencato. 28/02/2014 3.6 Assegnazione variabile = espressione x = 10 y = x * 10 / 2 + 3 s = "Hello world!" V. Moriggia 3

28/02/2014 3.7 Esempi Assegnare il risultato di 20 per 3 alla variabile a senza dichiararla Aggiungere la clausola Option Explicit 28/02/2014 3.8 INPUT in VBA V. Moriggia 4

28/02/2014 3.9 Input di una subroutine: range().value Direttamente dalle celle del foglio Sub Input1() Dim a As Double a = Range("A1").Value MsgBox a End Sub Nota: Range( A1:B5 ) equivale a Range( A1, B5 ) è possibile anche Range( A1;B3;C2 ) 28/02/2014 3.10 Esercizio Convertire i gradi Celsius contenuti nella cella A1 nei corrispondenti gradi Fahrenheit in cella B1 V. Moriggia 5

28/02/2014 3.11 Input di una subroutine: range().value E possibile utilizzare i nomi di zona: a = Range( capitale").value Tipi restituiti sono: double per i dati numerici string per le etichette di testo 28/02/2014 3.12 Input da MsgBox() Sub InputMsgBox() ' Chiamata di una FUNCTION rc = MsgBox("Prova come funzione") End Sub V. Moriggia 6

28/02/2014 3.13 Output di una subroutine: msgbox Stringa di messaggio attraverso un pop-up Continua Sub Output3() sulla riga Dim rc successiva ' Chiamata di una SUBroutine MsgBox "prova di testo via pop-up", vbcritical _ + vbokonly, "Prova PopUp" ' Chiamata di una FUNCTION rc = MsgBox("Prova come funzione") End Sub 28/02/2014 3.14 Input di una subroutine: inputbox Attraverso una finestra di pop-up Sub Input2() prompt Dim a As Variant a = InputBox("Immettere l'età:", _ "Prova di InputBox", 5) MsgBox a End Sub Titolo della finestra Valore di default (proposto) V. Moriggia 7

28/02/2014 3.15 Esempi Assegnare a una variabile il valore restituito da MsgBox e copiarlo nella cella A1 Leggere il contenuto delle celle C2 e C3 e riportare la somma in C4 Leggere due valori con InputBox e restituirne la somma con MsgBox 28/02/2014 3.16 Ripasso di Excel La cella A1 contiene un numero compreso tra 0 e 1? =SE(E(A1>0,A1<1),"Vero","Falso") =E(A1>0,A1<1) V. Moriggia 8

28/02/2014 3.17 Selezione semplice Se condizione Allora istruzione If condizione Then istruzione If condizione Then istruzioni End If Se condizione Allora istruzione Altrimenti istruzione alternativa If condizione Then istruzioni Else istruzioni End If 28/02/2014 3.18 Operatori di confronto e logici OPERATORI DI CONFRONTO var./cost. OPER var./cost. = uguale a > maggiore di < minore di <> diverso da >= maggiore o uguale a <= minore o uguale a OPERATORI LOGICI condiz. OPER condiz. And intersezione Or unione Not negazione V. Moriggia 9

28/02/2014 3.19 Esercizi 3.1 Implementare la subroutine miamax2 che scriva in B3 il maggiore tra due numeri contenuti nelle celle B1 e B2 28/02/2014 3.20 Funzioni Excel vs. Macro VBA Unione di celle Ricalcolo una tantum (ad ogni esecuzione) Ricalcolo immediato (ad ogni immissione) V. Moriggia 10

28/02/2014 3.21 Cella attiva ActiveCell.FormulaR1C1 = "123" oggetto azioni o metodi proprietà o attributi 28/02/2014 3.22.FormulaR1C1 Diverso da.formula? C3: R[2]C[-3] =INDIRETTO(C3,FALSO) Sub InsFormule() ActiveCell.Formula = "=B1*C1" ' VS. ActiveCell.FormulaR1C1 = "=RC[1]*RC[2]" End Sub V. Moriggia 11