Usa le macro in Excel su Mac per risparmiare tempo e fare di più

Usa le macro in Excel su Mac per risparmiare tempo e fare di più

Excel su Mac non è sempre stato lo stesso potente di Windows. Le macro non funzionerebbero davvero a meno che non fossero create esclusivamente per Mac.





A partire dal 2013, Microsoft ha ripristinato le macro. Esistono due tipi di macro: quelle che puoi creare registrando rapidamente le tue azioni e quelle che utilizzano VBA per progettare automazioni più avanzate. Con Office 2016, Excel utilizza il stesso codice su tutte le piattaforme . Questa modifica semplificherà il funzionamento delle macro su più piattaforme.





Quindi diamo un'occhiata a come funziona attualmente su macOS.





come aggiungere filtri su zoom

Abilitare le macro in Excel su Mac

L'utilizzo delle macro in Excel sul Mac potrebbe non essere abilitato per impostazione predefinita. Questa impostazione è dovuta al fatto che le macro possono essere un possibile vettore di malware. Il modo più semplice per dirlo è vedere se hai il Sviluppatore scheda disponibile sulla barra multifunzione in Excel. Se non lo vedi, è semplice abilitarlo.

Clicca su Eccellere nella barra dei menu, quindi selezionare Preferenze nel menu a discesa. Nel menu, clicca su Barra multifunzione e barra degli strumenti . Nell'elenco di destra, Sviluppatore dovrebbe essere in basso, fare clic sulla casella di controllo. Infine, fai clic su Salva e dovresti vedere la scheda Sviluppatore visualizzata alla fine della barra multifunzione.



Dopo aver creato ogni cartella di lavoro con le macro, salvala in un nuovo formato .xlsm per utilizzare le macro dopo aver riaperto il file. Se dimentichi, Excel te lo ricorderà ogni volta che tenti di salvare. Dovrai anche abilitare le macro ogni volta che apri il file.

Registrazione manuale di una macro in Excel su Mac

Sebbene tu possa codificare le macro , potrebbe non essere adatto a tutti. Se non sei pronto per iniziare a lavorare con VBA, Excel ti consente di registrare i passaggi per la tua macro in un foglio esistente. Fare clic sulla scheda Sviluppatore per visualizzare le opzioni.





Stai cercando la terza opzione nella barra multifunzione, Registra macro . Fare clic su questo e viene visualizzata una finestra di dialogo che consente di assegnare un nome alla macro e impostare una scorciatoia da tastiera. Puoi limitare la tua macro a Cartella di lavoro attuale , a Nuova cartella di lavoro , o nel tuo Cartella macro personale . La cartella di lavoro macro personale si trova nel tuo profilo utente e ti consente di utilizzare le tue macro tra i tuoi file.

Una volta registrate le tue azioni, sono disponibili in questa stessa scheda. Facendo clic sulle macro verranno visualizzate le macro salvate nella cartella di lavoro. Fare clic sul nome della macro e fare clic su Correre per eseguire le azioni registrate.





Esempio 1: Totale delle vendite giornaliere e media oraria

Per una macro di esempio, esaminerai un foglio di vendita giornaliero, con le vendite suddivise per totali orari. La tua macro aggiungerà un totale di vendita giornaliero, quindi aggiungerà una media nell'ultima colonna di ogni periodo orario. Se lavori nella vendita al dettaglio o in altre posizioni di vendita, questo è un foglio utile per tenere traccia delle entrate.

Dobbiamo impostare il primo foglio. L'utilizzo di questo primo spazio vuoto come modello da copiare in una nuova scheda ogni giorno potrebbe farti risparmiare tempo. Nella prima colonna/riga metti ora/data. Nella parte superiore aggiungi dal lunedì al venerdì.

Quindi nella prima colonna inserire una suddivisione dei totali orari da 8-5. Ho usato l'orario di 24 ore, ma puoi usare la notazione AM/PM se preferisci. Il tuo foglio dovrebbe corrispondere allo screenshot qui sopra.

Aggiungi una nuova scheda e copiaci il modello. Quindi compila i dati di vendita per il giorno. (Se non hai dati per popolare questo foglio, Puoi entrare = Rand tra (10.1000) in tutte le celle per creare dati fittizi.) Quindi, fare clic su Sviluppatore nel nastro.

Quindi, fare clic su Registra macro . Nella finestra di dialogo inserisci il nome come MediaeSomma e lasciarlo conservato in Questa cartella di lavoro . Se lo desideri, puoi impostare un tasto di scelta rapida. Puoi inserire una descrizione se hai bisogno di maggiori dettagli su cosa fa la macro. Fare clic su OK per iniziare a configurare la macro.

In fondo agli elenchi orari entra Totali giornalieri . Nella cella accanto, inserisci =SOMMA(B2:B10) . Quindi copialo e incollalo nel resto delle colonne. Quindi nell'intestazione aggiungi Media dopo l'ultima colonna. Quindi nella cella successiva in basso, inserisci =Media(B2:F2) . Quindi, incollalo nelle celle nel resto della colonna.

Quindi fare clic su Interrompi registrazione . La tua macro è ora in grado di utilizzare su ogni nuovo foglio che aggiungi alla cartella di lavoro. Una volta che hai un altro foglio di dati, torna a Sviluppatore e clicca macro . La tua macro dovrebbe essere evidenziata, fai clic su Esegui per aggiungere le somme e le medie.

Questo esempio può farti risparmiare un paio di passaggi, ma per azioni più complesse che possono sommarsi. Se si eseguono le stesse operazioni su dati con formattazione identica, utilizzare le macro registrate.

Macro VBA in Excel su Mac

Le macro registrate manualmente in Excel aiutano con dati che hanno sempre le stesse dimensioni e forma. È anche utile se si desidera eseguire azioni sull'intero foglio. Puoi usare la tua macro per dimostrare il problema.

Aggiungi un'altra ora e un giorno al foglio ed esegui la macro. Vedrai che la macro sovrascrive i tuoi nuovi dati. Il modo per aggirare questo problema è usare il codice per rendere la macro più dinamica usando VBA, che è un versione ridotta di Visual Basic . L'implementazione si concentra sull'automazione per Office.

Non è così facile da imparare come Applescript , ma l'automazione di Office è interamente basata su Visual Basic. Quindi, una volta che ci lavori qui, puoi rapidamente girarti e usarlo in altre app di Office. (Può anche essere di grande aiuto se sei bloccato con un PC Windows al lavoro.)

Quando lavori con VBA in Excel, hai una finestra separata. Lo screenshot qui sopra è la nostra macro registrata così come appare nell'editor di codice. La modalità finestra può essere utile per giocare con il codice mentre impari. Quando la macro viene bloccata, sono disponibili strumenti di debug per esaminare lo stato delle variabili e dei dati del foglio.

Office 2016 ora viene fornito con l'editor di Visual Basic completo. Ti consente di utilizzare il Browser degli oggetti e gli strumenti di debug che erano limitati alla versione di Windows. Puoi accedere al Browser degli oggetti andando su Visualizza > Browser oggetti o semplicemente premi Maiusc + Comando + Si . È quindi possibile sfogliare tutte le classi, i metodi e le proprietà disponibili. È stato molto utile nella costruzione del codice nella sezione successiva.

Esempio 2: Totale delle vendite giornaliere e media oraria con codice

Prima di iniziare a codificare la tua macro, iniziamo aggiungendo un pulsante al modello. Questo passaggio rende molto più facile per un utente inesperto accedere alla tua macro. Possono fare clic su un pulsante per chiamare la macro anziché scavare nelle schede e nei menu.

Torna al foglio modello vuoto che hai creato nell'ultimo passaggio. Clicca su Sviluppatore per tornare alla scheda. Una volta che sei nella scheda, fai clic su Pulsante . Quindi, fai clic da qualche parte nel foglio sul modello per posizionare il pulsante. Viene visualizzato il menu delle macro, assegna un nome alla macro e fai clic su Nuovo .

Si aprirà la finestra di Visual Basic; lo vedrai elencato come Modulo2 nel browser del progetto. Il riquadro del codice avrà Sotto media e tasto somma() in alto e poche righe in basso Fine sotto . Il tuo codice deve andare tra questi due, poiché è l'inizio e la fine della tua macro.

Passaggio 1: dichiarazione delle variabili

Per iniziare, dovrai dichiarare tutte le tue variabili . Questi sono nel blocco di codice sottostante, ma una nota su come sono costruiti. Dovresti dichiarare tutte le variabili usando Nessuno prima del nome, e poi come con il tipo di dati.

Sub AverageandSumButton()
Dim RowPlaceHolder As Integer
Dim ColumnPlaceHolder As Integer
Dim StringHolder As String
Dim AllCells As Range
Dim TargetCells As Range
Dim AverageTarget As Range
Dim SumTarget As Range

Ora che hai tutte le tue variabili, devi usare subito alcune delle variabili di intervallo. Gli intervalli sono oggetti che contengono sezioni del foglio di lavoro come indirizzi. La variabile Tutte le celle verrà impostato su tutte le celle attive sul foglio, che include le etichette di colonna e riga. Ottieni questo chiamando il Foglio attivo oggetto e poi è UsatoRange proprietà.

Il problema è che non vuoi che le etichette siano incluse nella media e nella somma dei dati. Utilizzerai invece un sottoinsieme dell'intervallo AllCells. Questa sarà la gamma TargetCells. Dichiari manualmente il suo intervallo. Il suo indirizzo iniziale sarà la cella nella seconda riga nella seconda colonna dell'intervallo.

Lo chiami chiamando il tuo AllCells gamma, utilizzando il suo cellule classe per ottenere quella cella specifica usando (2.2) . Per ottenere l'ultima cella nell'intervallo, chiamerai comunque AllCells . Questa volta usando SpecialCells metodo per ottenere la proprietà xlCellTypeLastCell . Puoi vedere entrambi nel blocco di codice qui sotto.

Set AllCells = ActiveSheet.UsedRange
Set TargetCells = Range(AllCells.Cells(2, 2), AllCells.SpecialCells(xlCellTypeLastCell))

Passaggio 2: per ogni loop

Le prossime due sezioni di codice sono i cicli For Each. Questi cicli passano attraverso un oggetto per agire su ogni sottoinsieme di quell'oggetto. In questo caso, ne stai facendo due, uno per ogni riga e uno per ogni colonna. Dal momento che sono quasi esattamente gli stessi, solo uno di loro è qui; ma entrambi sono nel blocco di codice. I dettagli sono praticamente identici.

Prima di avviare il ciclo per ogni riga, è necessario impostare la colonna di destinazione in cui il ciclo scrive la media di ciascuna riga. tu usi il ColonnaLuogoTitolare variabile per impostare questo obiettivo. Lo metti uguale a Contare variabile del cellule classe di AllCells . Aggiungine uno per spostarlo a destra dei tuoi dati aggiungendo +1 .

Successivamente, inizierai il ciclo usando Per ciascuno . Quindi vuoi creare una variabile per il sottoinsieme, in questo caso, sottoriga . Dopo il In , impostiamo l'oggetto principale che stiamo analizzando Cellule bersaglio . Aggiungere .righe alla fine per limitare il ciclo solo a ciascuna riga, anziché a ogni cella dell'intervallo.

All'interno del ciclo, usi il metodo ActiveSheet.Cells per impostare un obiettivo specifico sul foglio. Le coordinate vengono impostate utilizzando sottoriga.riga per ottenere la riga in cui si trova attualmente il ciclo. Quindi, usi ColonnaLuogoTitolare per l'altra coordinata.

Lo usi per tutti e tre i passaggi. Il primo che aggiungi .valore dopo le parentesi e posto uguale a Foglio di lavoroFunzione.Media (sottoriga) . Questo scrive la formula per la media della riga nella cella di destinazione. La riga successiva che aggiungi .Stile e impostalo uguale a 'Valuta' . Questo passaggio corrisponde al resto del foglio. Nell'ultima riga, aggiungi .Carattere.Bold e impostalo uguale a Vero . (Nota che non ci sono virgolette intorno a questo, poiché è il valore booleano.) Questa riga mette in grassetto il carattere per far risaltare le informazioni di riepilogo dal resto del foglio.

Entrambi i passaggi sono nell'esempio di codice seguente. Il secondo ciclo scambia righe per colonne e cambia la formula in Somma . L'utilizzo di questo metodo lega i calcoli al formato del foglio corrente. Altrimenti, è legato alla dimensione nel momento in cui registri la macro. Quindi, quando lavori più giorni o più ore, la funzione cresce con i tuoi dati.

Wii U gioca ai giochi GameCube?
ColumnPlaceHolder = AllCells.Columns.Count + 1
For Each subRow In TargetCells.Rows
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Value = WorksheetFunction.Average(subRow)
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Style = 'Currency'
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Font.Bold = True
Next subRow
RowPlaceHolder = AllCells.Rows.Count + 1
For Each subColumn In TargetCells.Columns
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Value = WorksheetFunction.Sum(subColumn)
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Style = 'Currency'
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Font.Bold = 'True'
Next subColumn

Passaggio 3: etichetta i tuoi riepiloghi

Quindi, etichetta la nuova riga e colonna, imposta Row Placeholder e ColonnaLuogoTitolare ancora. Per prima cosa, usa AllCells.Row per ottenere la prima riga dell'intervallo, quindi AllCells.Colonna+1 per ottenere l'ultima colonna. Quindi utilizzerai lo stesso metodo del ciclo per impostare il valore su 'Vendite medie' . Userai lo stesso anche tu .Carattere.Bold proprietà per mettere in grassetto la tua nuova etichetta.

Quindi invertirlo, impostando i segnaposto sulla prima colonna e sull'ultima riga da aggiungere 'Vendite totali' . Vuoi mettere in grassetto anche questo.

Entrambi i passaggi sono nel blocco di codice sottostante. Questa è la fine della macro annotata da Fine sotto . Ora dovresti avere l'intera macro ed essere in grado di fare clic sul pulsante per eseguirla. Puoi incollare tutti questi blocchi di codice in ordine nel tuo foglio Excel se vuoi imbrogliare, ma dov'è il divertimento in questo?

ColumnPlaceHolder = AllCells.Columns.Count + 1
RowPlaceHolder = AllCells.Row
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = 'Average Sales'
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = True
ColumnPlaceHolder = AllCells.Column
RowPlaceHolder = AllCells.Rows.Count + 1
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = 'Total Sales'
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = True
End Sub

Quali sono le prospettive per le macro in Excel su Mac?

Le macro registrate sono ottime da usare per ripetizioni prevedibili. Anche se è qualcosa di semplice come ridimensionare tutte le celle e le intestazioni in grassetto, queste possono farti risparmiare tempo. Solo evitare errori macro comuni .

Visual Basic apre le porte agli utenti di Mac Excel per approfondire l'automazione di Office. Visual Basic era tradizionalmente disponibile solo su Windows. Consente alle macro di adattarsi dinamicamente ai dati, rendendole più versatili. Se hai la pazienza, questa può essere la porta per una programmazione più avanzata.

Vuoi più trucchi per risparmiare tempo sui fogli di calcolo? Scopri come evidenziare automaticamente dati specifici con la formattazione condizionale in Excel e l'evidenziazione condizionale in Numbers sul Mac.

Condividere Condividere Tweet E-mail 3 modi per verificare se un'e-mail è reale o falsa

Se hai ricevuto un'email che sembra un po' dubbia, è sempre meglio verificarne l'autenticità. Ecco tre modi per sapere se un'e-mail è reale.

Leggi Avanti
Argomenti correlati
  • Mac
  • Produttività
  • Programmazione
  • Programmazione Visual Basic
  • Microsoft Excel
Circa l'autore Michael McConnell(44 articoli pubblicati)

Michael non ha usato un Mac quando erano condannati, ma può programmare in Applescript. È laureato in Informatica e Inglese; è da un po' che scrive di Mac, iOS e videogiochi; ed è stato una scimmia IT diurna per oltre un decennio, specializzato in scripting e virtualizzazione.

Altro da Michael McConnell

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti
Categoria Mac