Macro (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m tag errato, checkwiki
Botcrux (discussione | contributi)
m Bot, replaced: Categoria:Teorie della programmazione → Categoria:Paradigmi di programmazione
Riga 2:
In [[informatica]], il termine '''macro''' sta ad indicare una [[subroutine|procedura]], ovvero un insieme di [[istruzione (informatica)|comandi]] o istruzioni, tipicamente ricorrente durante l'[[Esecuzione (informatica)|esecuzione]] di un [[programma (informatica)|programma]]. Una macro è concettualmente molto simile ad una [[funzione (informatica)|funzione]] ovvero può essere richiamata da eventi ed essere parametrizzata. Un analogo concetto in ambito sistemistico è quello di [[script|shell script]].
 
Le macro consentono di ottenere una serie di operazioni con l'invio di un solo comando. Alcuni programmi hanno all'interno la capacità di registrare ed eseguire macro, in alternativa esistono [[software]] di automazione che consentono di realizzare macro a livello superiore, e quindi per tutti i programmi che non le prevedono.
 
Il concetto originario di macro non prevede l'uso di un [[linguaggio di programmazione]], trattandosi di una semplice registrazione di una serie di comandi già disponibile all'interno del [[software]]. Evolvendosi nella forma attuale, le macro hanno acquisito un linguaggio di programmazione (es. [[Visual Basic|VBA]]), con tanto di [[Selezione (informatica)|strutture condizionali]] (If... Then... Else...), [[subroutine]], dialogo con l'utilizzatore attraverso finestre per l'introduzione di dati, raggiungendo un'efficienza molto maggiore, ma anche maggiore complessità nella loro stesura.
Riga 11:
La macro può essere salvata a livello di singolo foglio di lavoro, tutte le cartelle di lavoro aperte, qualsiasi file Excel/open office. In quest'ultimo caso, la macro deve essere salvata nella cartella di avvio del programma (XLStart/PERSONAL.XLS, ovvero Open Office/Avvio).
 
Se la macro è salvata nel codice del singolo foglio di lavoro è una ''private subroutine'', non visibile nell'elenco di macro presente nel file, ed è un tipo di macro ad evento, eseguita ogni volta che si apre il foglio di lavoro cui è associata.
 
Se ad esempio si desidera avere un indice dinamico dei fogli di lavoro presenti in un ''file'' Excel, dovrà essere associata a un foglio di lavoro di nome "Index" una macro che crea un indice dei fogli di lavoro: in pratica, per avere un indice dinamico si utilizza una macro ''ad evento'', salvata nel foglio di lavoro, che crea un comune indice statico.
Riga 20:
Per ottenere istruzioni di questo tipo con il registratore di macro, è sufficiente selezionare le aree di interesse ''prima'' di iniziare la registrazione di macro, e subito dopo lanciare la registrazione. Il registratore genera codice del tipo: "Selection.Copy", "selection.Autofilter", "Selection.Delete".
 
Per selezionare l'ultima cella attiva sopra, sotto, a destra o sinistra di quella corrente, si utilizzano le proprietà del metodo "End": "xlUp", "xldown", "xlToRight", "xlToLeft". Per selezionare le celle di un intervallo di dimensione variabile si utilizzano questi riferimenti con istruzioni del tipo:
 
:<pre>Range(Selection, Selection.End(xlDown)).Select</pre>
 
Questa istruzione indica gli estremi dell'intervallo da selezionare, da una parte la cella selezionata dal cursore e dall'altra l'ultima cella attiva (con valori o formule) fra quelle al di sotto della selezione corrente. <br />
Per ottenere la selezione di più colonne, è sufficiente selezionare un intervallo di celle, anziché una singola cella, prima di lanciare la macro.
 
Riga 46:
Sub For_Each()
 
Dim mySheets As Worksheet 'mySheets è un foglio di lavoro e WorkSheet il file corrente
 
For Each mySheets In Worksheets
 
mySheets.Select
Riga 87:
 
== Macro su date ==
Per eseguire un filtro, formula o procedura su una cella di tipo "Data", senza modificarne il formato europeo, occorre che i dati siano separati dal segno "*".
 
Diversamente, la macro porta la data nel formato americano del tipo "mm/g/aaaa", con i mesi che precedono i giorni. Ciò crea problemi nell'esecuzione di tutta una serie di funzioni, a partire dall'estrazione del mese o dell'anno contenuti nella data.
Riga 94:
SI parla di macro ad evento quando la macro viene eseguita dopo aver compiuto certe azioni sul foglio di calcolo, come cliccare un bottone, aprire un certo foglio o file Excel.
 
Se la macro è associata all'apertura di un foglio di calcolo, deve iniziare come "Private Subroutine" ed essere copiata nel codice della pagina (etichetta del foglio di lavoro, tasto destro del ''mouse'', ''Visualizza codice sorgente'').
 
Utilizzando la barra per VBA, la macro si trova nella cartella moduli della pagina in oggetto. Facendo riferimento alla [[programmazione a oggetti]], la macro a evento è trattata come un metodo dell'oggetto foglio di calcolo.
 
Una macro simile serve ad esempio a creare indice ''dinamico'' dei fogli presenti in un certo ''file'': aprendo il foglio "Indice", se altri fogli sono stati rinominati o eliminati, la macro aggiornerà il contenuto di conseguenza.
Riga 103:
Per quanto detto in precedenza, macro e tabelle pivot sono strumenti di largo utilizzo nei fogli di calcolo, implementati da programmi quali Excel e Open Office Calc.
 
Tutti i programmi della ''suite'' office e Open Office hanno un motore interno per la registrazione ed esecuzione di macro.
 
L'integrazione fra programmi dello stesso pacchetto avviene anche sotto l'aspetto delle macro: è possibile, ad esempio, registrare una macro in Microsoft Access che opera con dei file Excel, e restituisce un output testuale su Word.
Riga 110:
 
=== Microsoft Office===
[[Microsoft Office]] consente l'esecuzione di macro all'interno di un singolo file o aprendo file salvati con i programmi [[Outlook]], [[Microsoft Word|Word]], [[Microsoft Excel|Excel]], [[Powerpoint]], [[Publisher]], [[Microsoft Access|Access]]. L'integrazione in pratica è disponibile per i programmi del pacchetto Office, e tramite [[Internet Explorer]] all'elaborazioni di dati pubblicati da altri applicativi nel web. Il registratore di macro è un [[editor grafico]], che genera un codice [[Visual Basic]], in base ai movimenti del ''mouse'' e alle stringhe digitate da tastiera. È possibile associare la macro ad un bottone che la richiama, e a un comando breve da tastiera (es. digitando "Alt+F5"), e salvarla a diversi livelli, per il file in uso, per una cartella di file oppure all'avvio di un programma di Office.
 
Dalla [[Office 2007|versione 2007]], è possibile associare un commento alla macro e inserire parti di testo esplicative e non eseguibili all'interno del codice VB. È corretto un baco per il quale una macro non era automaticamente eseguita sul foglio [[Microsoft Excel|Excel]] nel quale è posizionato il riferimento cella, cosa che rendeva talune macro difficilmente estendibili ad un intero foglio Excel, insieme di [[Lucido|lucidi]] Powerpoint e simili. Inoltre, i riferimenti relativi rendono meno onerosa la manutenzione del codice generato, ed evitano di dover risistemare il codice della macro ad ogni cambiamento di nome del file o dei fogli Excel, e all'organizzazione del foglio, con aggiunta di righe/colonne o spostamento dei contenuti di interesse per la macro.
Riga 118:
 
=== Open Office ===
Open Office contiene un ''[[application programming interface]]'' che consente la registrazione/compilazione manuale e l'esecuzione di macro in differenti linguaggi di programmazione, fra i quali: [[C++]], [[Java (linguaggio)|Java]], [[Python]], {{Chiarire|[[CLI]]}}, StarBasic, [[JavaScript]], [[Object Linking and Embedding|OLE]].
 
Open Office non possiede un ambiente di programmazione per il VBA di Microsoft, e non è compatibile con questo linguaggio. Esistono delle versioni del programma che permettono una conversione fra il codice VBA e Star Office.
Riga 150:
{{portale|informatica}}
 
[[Categoria:TeorieParadigmi delladi programmazione]]