Macro (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
(15 versioni intermedie di 10 utenti non mostrate)
Riga 1:
{{F|programmazione|ottobre 2012}}
In [[informatica]], il termine '''macro''' sta ad indicare una [[subroutine|procedura]], ovvero un "insieme" o "blocco" di [[istruzione (informatica)|comandi]] o [[istruzione (informatica)|istruzioni]], tipicamente ricorrente durante l'[[Esecuzione (informatica)|esecuzione]] di un [[programma (informatica)|programma]]. È concettualmenteConcettualmente molto simile ad una [[funzione (informatica)|funzione]] ovvero può essere richiamata da eventi ed essere parametrizzata, permettendo [[riuso di codice]]., Unun analogo concetto in ambito [[sistemista|sistemistico]] è quello di [[script|shell script]].
 
Consente dunque di eseguire una serie o blocco di operazioni/istruzioni con l'invio di un solo comando, riutilizzabili ed utili ad "automatizzare" su richiesta compiti più complessi delle singole istruzioni.; Alcunialcuni programmi hanno all'interno la capacità di creare/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. In un [[foglio di calcolo]], alcune operazioni tipiche di una macro sono inserimento/eliminazione di righe/colonne, formattazione del testo/numero e colore, copia-incolla di valori, esecuzione di funzioni come le somme, impostazioni di stampa e salvataggio del ''[[file]]''.
 
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]].; Evolvendosievolvendosi 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.
 
== Descrizione ==
Riga 23:
:<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.
Per ottenere la selezione di più colonne, è sufficiente selezionare un intervallo di celle, anziché una singola cella, prima di lanciare la macro.
 
Se l'area da selezionare dipende da altri intervalli di celle, si utilizza una variante del tipo:
 
:<pre>Range(Selection, Range("A1:B" & (Range("A1").End(xlDown).Row))).Select</pre>, <br/>

che seleziona l'intervallo iniziale e l'intervallo da A1 alla colonna B in corrispondenza della riga dove si trova l'ultima cella non vuota sotto A1.
 
Per selezionare le celle sottostanti una colonna (es. la colonna 1) oggetto di filtro dati:<br/>
Riga 96 ⟶ 97:
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.
 
=== Macro ada evento ===
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.
 
Riga 120 ⟶ 121:
[[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 [[bug]] 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, ad un insieme di diapositive di 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<ref>{{Cita web|url=https://masterexcel.it/creare-macro-excel/|titolo=Come Creare Macro con Microsoft Excel - MasterExcel.it}}</ref>, e all'organizzazione del foglio, con aggiunta di righe/colonne o spostamento dei contenuti di interesse per la macro.
 
=== Star Office ===
Riga 126 ⟶ 127:
 
=== 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 di programmazione)|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.
 
Le macro di Open Office possono operare con una varietà molto più ampia di file, rispetto ad Excel 2007. Durante registrazione, dal menu File/Apri (e in Excel da "File/Cerca file") si richiamano i file con i quali si intende eseguire delle operazioni. Il registratore scriverà il codice necessario sia per il file di partenza, nel quale si è avviata la registrazione della macro, che per tutti quelli aperti con tale modalità. Le estensioni compatibili in OpenOffice includono immagini, file [[AutoCAD|AutoCad]], molti programmi di testo, i file Notepad (non importabili in una macro Excel) che sono una frequente via di comunicazione di dati fra applicazioni proprietarie. Le macro Openoffice operano anche con file Microsoft Office, mentre al solito non esiste un'interoperabilità in senso opposto. Il [[compilatore]] Macro di Excel è molto più veloce e stabile.
 
=== LibreOffice ===
Riga 158 ⟶ 159:
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC||macro}}
* {{cita web|http://xoomer.virgilio.it/abcba/Esempi%20VBA.html|Macro Excel: Manuale per principianti}}