Archivi categoria: Linguaggi di programmazione

Articoli, letture e materiali per qualunque linguaggio di programmazione trattazione iù generale.

Sviluppare applicazioni con Visual Basic for Application in Microsoft Excel

Appunti su Visual Basic for Application

Il problema


Tutti gli utenti di computer in ambiente Microsoft e non utilizzano per la produttività personale delle applicazioni di “office automation” per scrivere testi, elaborare fogli elettronici, presentazioni e altro. 
Tutti però non usano le funzionalità avanzate del programma che conoscono. Ciò avviene per vari motivi alcuni dei più significativi sono:
1-Personalizzazione spinta dei documenti complessa e spesso non ben documentata: 
2-Prerequisiti richiesti per la conoscenza e la costruzione di vere e proprie applicazioni custom in ambiente office sono la conoscenza del linguaggio di programmazione supportati dalla particolare applicazione; 
3-La manipolazione di poche informazioni di qualsiasi tipo; 
Per l’ambiente Microsoft Office indipendentemente dalla versione utilizzata il linguaggio di programmazione supportato è il “Visual Basic for Application” versione ridotta del linguaggio Visual Basic ben noto per la piattaforma Microsoft. 
Attraverso questo codice è possibile creare macro ovvero veri e propri frammenti di codice VisualBasic che permettono di eseguire dei compiti personalizzati nel documento in cui vengono scritte.
Per imparare a scrivere le macro è necessario conoscere almeno in modo minimale i fondamenti per la programmazione strutturata e un minimo di conoscenza sulla programmazione ad oggetti,

Ambiente di sviluppo Visual Basic for Application

 

L’ambiente di sviluppo di Visual Basic for Application si può attivare nel Menù Strumenti – Macro – Visual Basic Editor dell’applicazione in cui si lavora.


La colo”nna di sinistra visualizza il documento aperto sul quale opera la macro. Nel nostro caso parleremo in modo più approfondito di Microsoft Excel”. Laddove la colonna di sinistra non fosse visibile basterà attivare il menù Visualizza – Gestione Progetti.
E’ utile notare che il riquadro gestione progetti si divide nell’insieme dei documenti aperti nella applicazione e nelle relative proprietà degli stessi.
In particolare un file di “Excel” contiene una cartella di lavoro e tre fogli di lavoro. Ognuno di questi oggetti viene nominato in modo diverso nella gestione progetti di VBA.
Questo concetto è legato anche al fatto che nella strutturazione della cartella di lavoro “ThisWorkbook” contiene i tre fogli.
Come prima prova apriamo il codice relativo a foglio1 cliccando due volte su foglio1 e scriviamo:

Sub cambia_nome()
Foglio1.Name = “Bilancio”
End Sub

In questo caso questa semplice macro cambia il nome al foglio1. Abbiamo richiamato una proprietà dell’oggetto foglio di Excel e abbiamo rinominato mediante programma in “Bilancio”.
Da questa prima macro alcuni spunti:
Sub indica l’inizio di un programma con un nume assegnato dall’utente; End Sub termina il programma. 
All’interno del costrutto Sub .. End Sub inseriamo le istruzioni di programma. 
Complichiamo un po’ la macro e proviamo a chiedere all’utente il nome del foglio il codice da scrivere è:

Sub cambia_nome()
Foglio1.Name = Inputbox(“Inserisci il nuovo nome ”,”Richiesta input”)
End Sub


In questo caso viene chiesto all’utente mediante una finestra di dialogo e digitiamo il nome del foglio che vogliamo dare. 
Abbiamo scritto una prima macro in “VBA”.

Le strutture dati – Lettura n.1

Le strutture dati rivestono una grande importanza, nella scrittura di programmi per il calcolatore, in quanto permettono di creare dei dati strutturati organizzati secondo quelle che sono le richieste di progettazione del progetto software. Tali strutture dati possono essere derivate dai tipi di dati elementari o semplici o atomici disponibile in tutti i linguaggi di programmazione moderni dal C al C# passando per Java e Python.
E’ pertanto importante avere piena conoscenza e capacità di utilizzare tali strutture dati.

Strutture dati definizione

Strutture dati definizione

Per definizione una struttura dati è un Insieme di dati organizzati in modo collettivo a partire dai tipi di dati atomici o semplici.
Le strutture dati sono distinte in base al meccanismo di memorizzazione che può essere la Memoria RAM o una memoria di massa come un Hard Disk o una chiavetta USB.
Per tale motivo possono essere temporanee o permanenti a seconda se la memorizzazione avviene in RAM o su memoria di massa.
Le strutture dati, inoltre sono classificate in:
Statiche o dinamiche; nel primo caso la struttura mantiene le sue caratteristiche e dimensione, nel secondo caso può variare la dimensione e la struttura durante l’esecuzione del programma.
Analizziamo le strutture di dati temporanee, come già detto perché utilizzano la Memoria RAM per la loro memorizzazione, in un’altra lettura è discussa l’uso di struttura dati permanenti come i Files o in casi molto più complessi I Database, che rappresentano gli Archivi di dati.
Le strutture dati sono inoltre classificabili in:

  • Omogenee ovvero composte da dati dello stesso tipo; in queste rientrano:
    • gli array o vettori
    • le matrici
    • le tabelle
    • le enumerazioni o insiemi
  • Eterogenee
    • Record

Le Enumerazioni rappresentano un insieme ordinato di valori in numero finito ad esempio:
colore={rosso,verde,giallo,blu}
Sono strutture dati che sono di solito utilizzate per discriminare varie possibilità per certe tipologie di dati in modo da non consentire all’utente una scelta arbitraria. Ad esempio un programma che richieda l’ordine di un capo di abbigliamento da parte di un negoziante per una nuova fornitura può obbligare lo stesso a scegliere un insieme predefinito di colori disponibili e non tutti quelli possibili. Gli array o vettori sono strutture di dati identificate da un nome collettivo, le cui componenti sono dello stesso tipo e sono selezionate da un indice,
Ad esempio in C/C++ int x[]={1,-3,0,1,2}; float z[]={3.14,6.28,1.414}; in questo modo è dichiarato un array con il numero di elementi e la dimensione rimane fissa.
In Python per definire un Array è possibile utilizzare la notazione:
vet =[1.2,3,4] oppure cars=[“fiat”,”ford”,”opel”]
In Java gli array possono essere definiti con la seguente notazione:
int [] x ={1,2,3,4}; oppure string [] words =
{‘apple’, ‘banana’, cherry’};
In C# int[] numeri = {1,2,3,4};
In tutti questi casi si parla di dichiarazione di array come lista di elementi, è possibile dichiarare degli array in modo statico e dinamico a seconda delle necessità costituite da un numero di elementi predefinito o vuoto.

Prospetto riassuntivo per vari linguaggi di programmazione molto utilizzati.

Linguaggio di programmazioneDichiarazione statica
C++int x[10];
C#int [] x = new int[10];
Javaint [] = new int[10];
Pythondipende se trattato come lista o con la libreria NumPy
Definizione dell’array in vari linguaggi di programmazione

Come si può notare in Python non esiste una dichiarazione unica, è possibile dichiarare un array vuoto con la dichiarazione del tipo: lista =[] ho inserito la parola lista perché in Python l’array può essere trattato come lista o come array se uso la libreria Numpy. L’uso di Numpy sarà affrontato in una lettura a parte. Solo un esempio di come dichiarare un array con Numpy in Python:

import numpy as np
x=np.array([])
Queste due righe dichiarano un array con Numpy vuoto.

Nella prossima lettura esamineremo le altre strutture dati non discusse.