Excel på Mac har ikke alltid vært det samme kraftverket det var på Windows. Makroer ville egentlig ikke fungere med mindre de ble opprettet utelukkende for Mac.
Starter i 2013, brakte Microsoft tilbake makroer. Det finnes to typer makroer: de du kan opprette ved raskt å registrere dine handlinger, og de som bruker VBA til å designe mer avanserte automasjoner. Med Office 2016 bruker Excel samme kodebase på alle plattformer. Denne endringen gjør det enklere for makroer å arbeide på tvers av plattformer.
Så la oss se på hvordan dette for øyeblikket fungerer på macOS.
Aktiverer makroer i Excel på Mac
Å arbeide med makroer i Excel på Mac-en er kanskje ikke aktivert som standard. Denne innstillingen er fordi makroer kan være en mulig malware-vektor. Slik beskytter du deg mot Microsoft Word-skadelig programvare. Slik beskytter du deg mot Microsoft Word-skadelig programvare. Visste du at datamaskinen din kan bli smittet av ondsinnede Microsoft Office-dokumenter, eller at du kan bli bedt om å aktivere Innstillingene de trenger for å infisere datamaskinen? Les mer . Den enkleste måten å fortelle, er å se om du har Utvikler- fanen tilgjengelig på Ribbon i Excel. Hvis du ikke ser det, er det enkelt å aktivere.
Klikk på Excel i menylinjen, og velg deretter Innstillinger i rullegardinmenyen. I menyen, klikk på Ribbon & Toolbar . I den høyre listen skal utvikler være nederst, klikk avkrysningsboksen. Endelig klikker du Lagre, og du bør se fanen Utvikler vises i slutten av båndet.
Når du har opprettet hver arbeidsbok med makroer, lagrer du det i et nytt format .xlsm for å bruke makroene etter at du har gjenåpnet filen. Hvis du glemmer, vil Excel minne deg om hver gang du prøver å lagre. Du må også aktivere makroer hver gang du åpner filen.
Manuelt innspilling av en makro i Excel på Mac
Selv om du kan kode makroer 4 Feil du kan unngå når du programmerer Excel Makroer med VBA 4 feil du kan unngå når du programmerer Excel Makroer med VBA Enkel kode og makroer er nøklene til Microsoft Excel supermakt. Selv ikke-programmører kan enkelt legge til imponerende funksjonalitet i regnearkene med Virtual Basics for Applications (VBA). Bare unngå disse programmeringsbegynnerfeilene! Les mer, det kan ikke være for alle. Hvis du ikke er klar til å begynne å jobbe med VBA, lar Excel deg registrere trinnene for makroen din i et eksisterende ark. Klikk på Utvikler-fanen for å se alternativene dine.
Du leter etter det tredje alternativet i Ribbon, Record Macro . Klikk på dette, og en dialogboks dukker opp, slik at du kan navngi makroen din og angi en hurtigtast. Du kan omfatte makroen din til gjeldende arbeidsbok, en ny arbeidsbok eller i din personlige makro arbeidsbok . Den personlige makro arbeidsboken er i brukerprofilen din og lar deg bruke makroene mellom filene dine.
Når du har tatt opp dine handlinger, er de tilgjengelige på denne samme kategorien. Hvis du klikker på makroer, hentes de lagrede makroene i arbeidsboken din. Klikk på makronavnet ditt og klikk Kjør for å kjøre dine innspilte handlinger.
Eksempel 1: Daglig salg Totalt og Gjennomsnittlig Gjennomsnittlig
For et eksempel makro, skal du løpe gjennom et daglig salgsliste, med salget fordelt på timetall. Makroen din skal legge til en daglig salgssum, og deretter legge til et gjennomsnitt i den siste kolonnen for hver timeperiode. Hvis du jobber i detaljhandel eller annen salgsposisjon, er dette et nyttig ark for å spore inntekter.
Vi må sette opp det første arket. Bruk av denne første blank som en mal for å kopiere til en ny fane hver dag kan spare deg litt tid. I den første kolonnen / rad setter du Time / Date. Tvers over toppen legg til mandag til fredag.
Deretter i den første kolonnen sette en pause ned av time totaler fra 8-5. Jeg brukte 24-timers tid, men du kan bruke AM / PM-notat hvis du foretrekker det. Ditt ark skal passe til skjermbildet ovenfor.
Legg til en ny kategori, og kopier din mal inn i den. Deretter fyller du ut dine salgsdata for dagen. (Hvis du ikke har data for å fylle dette arket, kan du skrive inn = RandBetween (10, 1000) i alle cellene for å lage dummy data.) Deretter klikker du på Utvikler i båndet.
Deretter klikker du på Record Macro . I dialogboksen skriv inn navnet som AverageandSum og la det lagres i denne arbeidsboken . Du kan angi en snarveisnøkkel hvis du vil. Du kan skrive inn en beskrivelse hvis du trenger mer informasjon om hva makroen gjør. Klikk ok for å begynne å sette opp makroen.
På bunnen av timelisteoppføringene legger du inn Daglige Totals . I cellen ved siden av det, skriv inn = SUM (B2: B10) . Deretter kopierer du og limer det inn i resten av kolonnene. Deretter i toppteksten legger du til Gjennomsnitt etter siste kolonne. Deretter i neste celle ned, skriv inn = Gjennomsnitt (B2: F2) . Lim deretter det inn i cellene i resten av kolonnen.
Klikk deretter Stopp innspilling . Makroen din kan nå bruke på hvert nytt ark du legger til i arbeidsboken din. Når du har et annet ark med data, går du tilbake til Utvikler og klikker Makroer . Makroen din bør bli uthevet, klikk kjør for å legge til summene og gjennomsnittene.
Dette eksempelet kan lagre deg et par trinn, men for mer komplekse handlinger som kan legge til. Hvis du gjør de samme operasjonene på data med identisk formatering, bruk registrerte makroer.
VBA makroer i Excel på Mac
Manuelt registrerte makroer i Excel hjelper deg med data som alltid er i samme størrelse og form. Det er også nyttig hvis du vil utføre handlinger på hele arket. Du kan bruke makroen din til å bevise problemet.
Legg til en annen time og dag på arket og kjør makroen. Du får se at makroen overskriver de nye dataene dine. Måten vi kommer rundt dette, er å bruke kode for å gjøre makroen mer dynamisk ved hjelp av VBA, som er en slanket versjon av Visual Basic 4 Gode nettsider som gjør deg til en visuell grunnleggende guru 4 Gode nettsteder for å gjøre deg til en visuell grunnleggende guru Ønsker du å lære Visual Basic? Her er noen gode ressurser for å komme i gang. Les mer . Implementeringen fokuserer på automatisering for Office.
Det er ikke så lett å plukke opp som Applescript Learn å automatisere Mac med AppleScript [Del 1: Introduksjon] Lær å automatisere Mac med AppleScript [Del 1: Introduksjon] Les mer, men Office automatisering er helt bygget rundt Visual Basic. Så når du jobber med det her, kan du raskt vende om og bruke den i andre Office-apper. (Det kan også være en stor hjelp hvis du sitter fast med en Windows-PC på jobb.)
Når du arbeider med VBA i Excel, har du et eget vindu. Skjermbildet over er vår registrerte makro som det vises i kodeditoren. Windowed-modusen kan være nyttig å leke med koden din mens du lærer. Når makroen din blir hengt opp, finnes det feilsøkingsverktøy for å se på tilstandene til variablene og arkdataene.
Office 2016 kommer nå med hele Visual Basic-redaktøren. Det lar deg bruke Object Browser og feilsøkingsverktøy som pleide å være begrenset til Windows-versjonen. Du kan få tilgang til objektbrowseren ved å gå til Vis> Objektbrowser eller bare trykke Shift + Command + B. Du kan deretter bla gjennom alle klassene, metodene og egenskapene som er tilgjengelige. Det var svært nyttig å bygge koden i neste avsnitt.
Eksempel 2: Daglig salg totalt og gjennomsnittlig per time med kode
Før du begynner å kode makroen din, la oss begynne med å legge til en knapp i malen. Dette trinnet gjør det mye enklere for en nybegynner å få tilgang til makroen din. De kan klikke på en knapp for å ringe makroen i stedet for å grave inn i fanene og menyene.
Bytt tilbake til det tomme malarket du opprettet i det siste trinnet. Klikk på Utvikler for å komme tilbake til fanen. Når du er på fanen, klikker du på knappen . Deretter klikker du et eller annet sted i arket på malen for å plassere knappen. Makromenyen kommer opp, navnet på makroen din og klikk på Ny .
Visual Basic Window åpnes; Du vil se den oppført som Module2 i prosjektleseren. Kodruden har Sub AverageandSumButton () øverst og noen linjer ned End Sub . Koden din må gå mellom disse to, da det er begynnelsen og slutten av makroen din.
Trinn 1: Deklarere variabler
For å begynne med, må du deklarere alle variablene. Grunnleggende om dataprogrammering 101 - Variabler og datatyper Grunnleggende om dataprogrammering 101 - Variabler og datatyper Etter å ha introdusert og snakket litt om Objektorientert programmering før og hvor navneinnehaveren kommer fra, Jeg trodde det er på tide at vi går gjennom det absolutt grunnleggende om programmering på en ikke-språkspesifikk måte. Dette ... Les mer. Disse er i kodeblokken nedenfor, men et notat om hvordan de er konstruert. Du bør deklarere alle variablene ved å bruke Dim før navnet, og deretter som med datatypen.
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
Nå som du har alle dine variabler, må du bruke noen av rekkeviddevariablene med en gang. Ranger er objekter som holder deler av regnearket som adresser. Variabelen Alle celler blir satt til alle aktive celler på arket, som inneholder kolonne- og radetikettene. Du får dette ved å ringe ActiveSheet- objektet og deretter er det UsedRange- egenskapen.
Problemet er at du ikke vil at etikettene er inkludert i gjennomsnitt og sumdata. I stedet bruker du en delmengde av AllCells-serien. Dette blir TargetCells-serien. Du erklærer manuelt sitt utvalg. Startadressen kommer til å være cellen i den andre raden i den andre kolonnen i serien.
Du ringer dette ved å ringe AllCells- serien din, ved å bruke sin Celler- klasse for å få den aktuelle cellen ved hjelp av (2, 2) . For å få den endelige cellen i serien, vil du fortsatt ringe AllCells . Denne gangen bruker SpecialCells- metoden for å få eiendommen xlCellTypeLastCell . Du kan se begge disse i kodeblokken nedenfor.
Set AllCells = ActiveSheet.UsedRange Set TargetCells = Range(AllCells.Cells(2, 2), AllCells.SpecialCells(xlCellTypeLastCell))
Trinn 2: For hver løkke
De to neste delene av koden er for hver absolutt grunnleggende for programmering for nybegynnere (del 2). Det absolutt grunnleggende for programmering for nybegynnere (del 2) I del 2 av vår absolutte nybegynnereguide til programmering, vil jeg dekke grunnleggende om funksjoner, returverdier, sløyfer og betingelser. Pass på at du har lest del 1 før du takler dette, der jeg forklarte ... Les mer sløyfer. Disse sløyfene går gjennom et objekt for å fungere på hver delmengde av objektet. I dette tilfellet gjør du to av dem, en for hver rad og en for hver kolonne. Siden de er nesten det samme, er bare en av dem her; men begge er i kodeblokken. Detaljerne er nesten identiske.
Før du starter sløyfen for hver rad, må du sette målkolonnen der sløyfen skriver gjennomsnittet av hver rad. Du bruker varianten ColumnPlaceHolder til å angi dette målet. Du setter den lik Grev- variabelen i Celle- klassen av AllCells . Legg til en til den for å flytte den til høyre for dataene dine ved å legge til +1 .
Deretter skal du starte sløyfen ved å bruke For hver . Deretter vil du opprette en variabel for delmengden, i dette tilfellet subRow . Etter In, setter vi hovedobjektet vi analyserer TargetCells . Legg til .Rå på slutten for å begrense sløyfen til bare hver rad, i stedet for hver celle i området.
Innenfor løkken bruker du ActiveSheet.Cells-metoden til å angi et bestemt mål på arket. Koordinatene er satt ved hjelp av subRow.Row for å få raden som løkken er i. Deretter bruker du ColumnPlaceHolder for den andre koordinaten.
Du bruker dette for alle tre trinnene. Den første du legger til .Value etter parentesene og sett lik ArbeidsfeltFunksjon . (SubRow) . Dette skriver formelen for gjennomsnittet av raden i målcellen. Neste linje du legger til. Stil og sett som tilsvarer "Valuta" . Dette trinnet samsvarer med resten av arket ditt. På den siste linjen legger du til .Font.Bold og sett den lik True . (Merk at det ikke er anførselstegn rundt denne, da det er den boolske verdien.) Denne linjen gir fet skrift til at sammendragsinformasjonen skiller seg ut fra resten av arket.
Begge trinnene er i koden eksempelet nedenfor. Den andre sløyfen bytter rader for kolonner og endrer formelen til Sum . Ved hjelp av denne metoden knytter du beregningene til formatet på gjeldende ark. Ellers er det knyttet til størrelsen på det tidspunktet du registrerer makroen. Så når du jobber flere dager eller timer, vokser funksjonen med dataene dine.
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
Trinn 3: Merk dine oppsummeringer
Deretter merker du den nye raden og kolonnen, sett RowPlaceHolder og ColumnPlaceHolder igjen. Først bruk AllCells.Row for å få den første raden i serien, og deretter AllCells.Column + 1 for å få den siste kolonnen. Deretter bruker du samme metode som løkken for å sette verdien til "Gjennomsnittlig salg" . Du vil også bruke samme .FontBold eiendom til dristig din nye etikett.
Deretter reverserer du det, og plasserer plassholdere til første kolonne og siste rad for å legge til "Total salg" . Du vil også driste dette også.
Begge trinnene er i kodeblokken nedenfor. Dette er slutten av makroen notert av End Sub . Du bør nå ha hele makroen 5 Ressurser for Excel-makroer for å automatisere regnearkene dine 5 Ressurser for Excel-makroer for å automatisere regnearkene dine Søk etter Excel-makroer? Her er fem nettsteder som har det du leter etter. Les mer, og klikk på knappen for å kjøre den. Du kan lime alle disse kodeblokkene inn i ditt Excel-ark hvis du vil lure, men hvor er det gøy i det?
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
Hva er neste for makroer i Excel på Mac?
Registrerte makroer er gode å bruke for forutsigbar gjentakelse. Selv om det er noe så enkelt som å endre størrelse på alle celler og fet skrift, kan disse spare tid.
Visual Basic åpner døren for Mac Excel-brukere å grave dypt inn i Office-automatisering. Visual Basic var tradisjonelt bare tilgjengelig på Windows. Det lar makroene dine tilpasse seg dataene dynamisk, noe som gjør dem mer allsidige. Hvis du har tålmodighet, kan dette være døråpningen til mer avansert programmering.