Excel su Mac non è sempre stato lo stesso potente di Windows. I macro non funzionerebbero davvero a meno che non fossero creati esclusivamente per il Mac.
A partire dal 2013, Microsoft ha riportato i macro. Esistono due tipi di macro: quelli che puoi creare registrando rapidamente le tue azioni e quelli che usano VBA per progettare automazioni più avanzate. Con Office 2016, Excel utilizza la stessa base di codice su tutte le piattaforme. Questa modifica renderà più facile il funzionamento delle macro attraverso le piattaforme.
Diamo un'occhiata a come questo funziona attualmente su macOS.
Abilitazione dei macro in Excel su Mac
L'utilizzo di macro in Excel sul Mac potrebbe non essere abilitato per impostazione predefinita. Questa impostazione è dovuta al fatto che i macro possono essere un possibile vettore di malware Come proteggersi dai malware Microsoft Word Come proteggersi dai malware Microsoft Word Sapevi che il tuo computer può essere infetto da documenti Microsoft Office dannosi o che potresti essere abilitato per l'attivazione le impostazioni di cui hanno bisogno per infettare il tuo computer? Leggi di più . Il modo più semplice per dirlo è vedere se la scheda Sviluppatore è disponibile sulla barra multifunzione in Excel. Se non lo vedi, è semplice da abilitare.
Fare clic su Excel nella barra dei menu, quindi selezionare Preferenze nel menu a discesa. Nel menu, fai clic su Ribbon & Toolbar . Nell'elenco a destra, lo sviluppatore dovrebbe essere in fondo, 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 macro, salvarla in un nuovo formato .xlsm per utilizzare le macro dopo aver riaperto il file. Se dimentichi, Excel ti ricorderà ogni volta che proverai a salvare. Avrai anche bisogno di abilitare i macro ogni volta che apri il file.
Registrazione manuale di una macro in Excel su Mac
Sebbene sia possibile codificare macro 4 errori che si possono evitare durante la programmazione di macro di Excel con errori di VBA 4 che si possono evitare durante la programmazione di macro di Excel con VBA Il codice semplice e le macro sono le chiavi dei superpoteri di Microsoft Excel. Persino i non programmatori possono facilmente aggiungere funzionalità straordinarie ai propri fogli di lavoro con Virtual Basics for Applications (VBA). Basta evitare questi errori di programmazione per principianti! Per saperne di più, 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. Fai clic sulla scheda Sviluppatore per visualizzare le opzioni.
Stai cercando la terza opzione nella barra multifunzione, Registra macro . Fai clic su questo e viene visualizzata una finestra di dialogo che ti consente di assegnare un nome alla macro e di impostare una scorciatoia da tastiera. È possibile estendere la macro alla cartella di lavoro corrente, a una nuova cartella di lavoro o alla cartella di lavoro macro personale . La cartella di lavoro macro personale si trova nel tuo profilo utente e ti consente di utilizzare i tuoi macro tra i tuoi file.
Dopo aver registrato le tue azioni, sono disponibili su questa stessa scheda. Facendo clic su macro verranno visualizzate le macro salvate nella cartella di lavoro. Fare clic sul nome della macro e fare clic su Esegui per eseguire le azioni registrate.
Esempio 1: totale giornaliero delle vendite e media oraria
Per una macro di esempio, verrà visualizzato un foglio di vendita giornaliero, con le vendite suddivise in totali orari. La tua macro aggiungerà un totale delle vendite giornaliere e quindi aggiungerà una media nell'ultima colonna di ciascun periodo orario. Se lavori al dettaglio o in altre posizioni di vendita, questo è un foglio utile per tracciare le entrate.
Dobbiamo impostare il primo foglio. L'utilizzo di questo primo vuoto come modello da copiare in una nuova scheda ogni giorno potrebbe farti risparmiare tempo. Nella prima colonna / riga inserisci ora / data. Dall'alto aggiungere lunedì al venerdì.
Quindi, nella prima colonna, analizza i totali orari da 8 a 5. Ho usato il tempo 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 copia il tuo modello in essa. Quindi compila i tuoi dati di vendita per il giorno. (Se non si dispone di dati per popolare questo foglio, è possibile immettere = RandBetween (10, 1000) in tutte le celle per creare dati fittizi.) Quindi fare clic su Sviluppatore nella barra multifunzione.
Quindi, fare clic su Registra macro . Nella finestra di dialogo immettere il nome come AverageandSum e lasciarlo memorizzato in questa cartella di lavoro . È possibile impostare un tasto di scelta rapida, se lo desideri. Puoi inserire una descrizione se hai bisogno di maggiori dettagli su cosa fa la macro. Fai clic su OK per iniziare a configurare la macro.
Nella parte inferiore degli elenchi orari, inserisci Totali giornalieri . Nella cella accanto ad essa, inserisci = SUM (B2: B10) . Quindi copialo e incollalo nel resto delle colonne. Quindi nell'intestazione aggiungi Media dopo l'ultima colonna. Quindi nella cella successiva, immettere = 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 tua cartella di lavoro. Una volta che hai un altro foglio di dati, torna allo sviluppatore e fai clic su Macro . La tua macro dovrebbe essere evidenziata, fai clic su Esegui per aggiungere somme e medie.
Questo esempio può farti risparmiare un paio di passaggi, ma per azioni più complesse che possono essere sommate. Se si eseguono le stesse operazioni su dati con una formattazione identica, utilizzare macro registrate.
Macro VBA in Excel su Mac
Le macro registrate manualmente in Excel aiutano con dati sempre della stessa dimensione e forma. È anche utile se si desidera eseguire azioni sull'intero foglio. Puoi usare la tua macro per provare 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 in cui aggiriamo questo è l'uso del codice per rendere la macro più dinamica usando VBA, che è una versione ridotta di Visual Basic 4 Grandi siti Web per farti un Visual Basic Guru 4 Grandi siti Web per farti diventare un Visual Basic Guru Vuoi imparare Visual Basic? Ecco alcune grandi risorse per iniziare. Leggi di più . L'implementazione si concentra sull'automazione per Office.
Non è così semplice da imparare come Applescript Impara ad automatizzare il tuo Mac con AppleScript [Parte 1: Introduzione] Imparare ad automatizzare il tuo Mac con AppleScript [Parte 1: Introduzione] Altre informazioni, ma l'automazione di Office è interamente basata su Visual Basic. Quindi, una volta che hai lavorato qui, sei in grado di girarti rapidamente 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 come appare nell'editor di codice. La modalità a finestra può essere utile per giocare con il tuo codice mentre stai imparando. Quando la macro viene riagganciata, ci sono strumenti di debug per esaminare lo stato delle variabili e dei dati del foglio.
Office 2016 ora include l'editor di Visual Basic completo. Ti consente di utilizzare il Browser degli oggetti e gli strumenti di debug che prima erano limitati alla versione di Windows. Puoi accedere al Browser degli oggetti andando su Visualizza> Browser degli oggetti o semplicemente premendo Maiusc + Comando + B. È quindi possibile sfogliare tutte le classi, i metodi e le proprietà disponibili. È stato molto utile nella costruzione del codice nella prossima sezione.
Esempio 2: totale giornaliero delle vendite e media oraria con codice
Prima di iniziare a codificare la tua macro, iniziamo aggiungendo un pulsante al modello. Questo passaggio rende molto più semplice per un utente alle prime armi accedere alla tua macro. Possono fare clic su un pulsante per chiamare la macro anziché scavare nelle schede e nei menu.
Tornare al foglio di modello vuoto creato nell'ultimo passaggio. Fai clic 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 macro, assegna un nome alla macro e fai clic su Nuovo .
Si aprirà la finestra di Visual Basic; lo vedrai elencato come Module2 nel browser del progetto. Il riquadro del codice avrà Sub AverageandSumButton () nella parte superiore e poche righe in giù End Sub . Il tuo codice deve passare 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 Nozioni di base sulla programmazione del computer 101 - Variabili e tipi di dati I fondamenti della programmazione per computer 101 - Variabili e tipi di dati Avendo introdotto e parlato un po 'di programmazione orientata agli oggetti prima e da dove proviene il suo omonimo, Ho pensato che fosse ora di passare attraverso le basi assolute della programmazione in un modo non specifico del linguaggio. Questo ... Per saperne di più. Questi sono nel blocco di codice qui sotto, ma una nota su come sono costruiti. Dovresti dichiarare tutte le variabili usando Dim 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 variabili dell'intervallo. Gli intervalli sono oggetti che contengono sezioni del foglio di lavoro come indirizzi. La variabile Tutte le celle verrà impostata su tutte le celle attive sul foglio, che include le etichette di colonna e riga. Si ottiene questo chiamando l'oggetto ActiveSheet e quindi è la proprietà UsedRange .
Il problema è che non vuoi che le etichette siano incluse nella media e sommate i dati. Invece, userete un sottoinsieme della gamma AllCells. Questa sarà la gamma TargetCells. Si dichiara manualmente il proprio intervallo. Il suo indirizzo di partenza sarà la cella nella seconda riga nella seconda colonna dell'intervallo.
Puoi chiamare questo chiamando il tuo intervallo AllCells, usando la sua classe Cells per ottenere quella specifica cella usando (2, 2) . Per ottenere la cella finale nell'intervallo, chiamerai comunque AllCells . Questa volta utilizza il metodo SpecialCells 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 ciascun ciclo
Le prossime due sezioni di codice sono For Each The Absolute Nozioni di base di Programming For Beginners (Parte 2) Le basi assolute della programmazione per principianti (parte 2) Nella parte 2 della nostra guida assoluta ai principianti per la programmazione, parlerò delle nozioni di base di funzioni, valori di ritorno, loop e condizioni. Assicurati di aver letto la parte 1 prima di affrontare questo, dove ho spiegato il ... Ulteriori informazioni loop. Questi loop 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. Dato che sono quasi esattamente uguali, 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 ogni riga. Si utilizza la variabile ColumnPlaceHolder per impostare questo target. Lo si imposta uguale alla variabile Count della classe Cells di AllCells . Aggiungi uno ad esso per spostarlo a destra dei tuoi dati aggiungendo +1 .
Quindi, inizierai il ciclo usando For Each . Quindi si desidera creare una variabile per il sottoinsieme, in questo caso, subRow . Dopo l' ingresso, impostiamo l'oggetto principale che stiamo analizzando TargetCells . Aggiungi .Rows alla fine per limitare il ciclo a solo ogni riga, invece di ogni cella dell'intervallo.
All'interno del ciclo, si utilizza il metodo ActiveSheet.Cells per impostare un obiettivo specifico sul foglio. Le coordinate vengono impostate utilizzando subRow.Row per ottenere la riga in cui si trova il loop. Quindi, si utilizza ColumnPlaceHolder per l'altra coordinata.
Lo usi per tutti e tre i passaggi. Il primo si aggiunge. Valore dopo le parentesi e impostato uguale a WorksheetFunction.Average (subRow) . Questo scrive la formula per la media della riga nella cella di destinazione. Alla riga successiva si aggiunge .Style e si imposta uguale a "Valuta" . Questo passaggio corrisponde al resto del foglio. Nell'ultima riga, aggiungi .Font.Bold e impostalo uguale a True . (Nota: non ci sono virgolette intorno a questo, dato che è il valore booleano.) Questa linea mette in grassetto il carattere per far risaltare le informazioni di riepilogo dal resto del foglio.
Entrambi i passaggi si trovano nell'esempio di codice riportato di seguito. Il secondo ciclo scambia le righe per le colonne e modifica la formula in Somma . L'utilizzo di questo metodo lega i calcoli al formato del foglio corrente. Altrimenti, è collegato alla dimensione al momento della registrazione della macro. Quindi quando lavori più giorni o ore, la funzione cresce con i tuoi dati.
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 riepiloghi
Quindi, etichettare la nuova riga e colonna, impostare nuovamente RowPlaceHolder e ColumnPlaceHolder . Innanzitutto, utilizzare AllCells.Row per ottenere la prima riga dell'intervallo, quindi AllCells.Column + 1 per ottenere l'ultima colonna. Quindi utilizzerai lo stesso metodo del ciclo per impostare il valore su "Vendite medie" . Utilizzerai anche la stessa proprietà .Font.old per mettere in grassetto la tua nuova etichetta.
Quindi invertirlo, impostando i segnaposti sulla prima colonna e sull'ultima riga per aggiungere "Vendite totali" . Vuoi audace anche questo.
Entrambi i passaggi si trovano nel blocco di codice sottostante. Questa è la fine della macro annotata da End Sub . Ora dovresti avere l'intera macro 5 Risorse per le macro di Excel per automatizzare i fogli di calcolo 5 Risorse per le macro di Excel per automatizzare i fogli di calcolo Ricerca di macro di Excel? Ecco cinque siti che hanno ottenuto ciò che stai cercando. Leggi altro, ed essere in grado di fare clic sul pulsante per eseguirlo. Puoi incollare tutti questi blocchi di codice in ordine nel tuo foglio Excel se vuoi imbrogliare, ma dov'è il divertimento?
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
Cosa c'è di nuovo in Macros in Excel su Mac?
I macro registrati sono ideali per la ripetizione prevedibile. Anche se è qualcosa di semplice come ridimensionare tutte le celle e le intestazioni in grassetto, queste possono farti risparmiare tempo.
Visual Basic apre le porte agli utenti Mac Excel per scavare in profondità nell'automazione di Office. Visual Basic era tradizionalmente disponibile solo su Windows. Permette alle tue macro di adattarsi dinamicamente ai dati, rendendoli più versatili. Se hai la pazienza, questa può essere la porta per una programmazione più avanzata.