Gebruik macro's in Excel op Mac om tijd te besparen en meer te doen

Gebruik macro's in Excel op Mac om tijd te besparen en meer te doen

Excel op de Mac is niet altijd dezelfde krachtpatser geweest als op Windows. Macro's zouden echt niet werken, tenzij ze exclusief voor de Mac zijn gemaakt.





Vanaf 2013 bracht Microsoft macro's terug. Er zijn twee soorten macro's: macro's die u kunt maken door snel uw acties vast te leggen, en macro's die VBA gebruiken om geavanceerdere automatiseringen te ontwerpen. Met Office 2016 gebruikt Excel de dezelfde codebase op alle platforms . Deze wijziging maakt het voor macro's gemakkelijker om op verschillende platforms te werken.





Laten we dus eens kijken hoe dit momenteel werkt op macOS.





oke google ik heb een vraag

Macro's inschakelen in Excel op Mac

Werken met macro's in Excel op uw Mac is mogelijk niet standaard ingeschakeld. Deze instelling is omdat macro's een mogelijke malwarevector kunnen zijn. De gemakkelijkste manier om te vertellen is om te zien of u de Ontwikkelaar tabblad beschikbaar op het lint in Excel. Als u het niet ziet, is het eenvoudig in te schakelen.

Klik op Excel in de menubalk en selecteer vervolgens Voorkeuren in de vervolgkeuzelijst. Klik in het menu op Lint en werkbalk . In de lijst aan de rechterkant, Ontwikkelaar onderaan moet staan, klik op het selectievakje. Klik ten slotte op Opslaan en je zou het tabblad Ontwikkelaar aan het einde van het lint moeten zien verschijnen.



Nadat u elke werkmap met macro's hebt gemaakt, slaat u deze op in een nieuwe indeling .xlsm om de macro's te gebruiken nadat u het bestand opnieuw hebt geopend. Als u het vergeet, herinnert Excel u elke keer dat u probeert op te slaan eraan. U moet ook elke keer dat u het bestand opent macro's inschakelen.

Handmatig een macro opnemen in Excel op Mac

Hoewel je macro's kunt coderen , dat is misschien niet voor iedereen weggelegd. Als u nog niet klaar bent om met VBA te gaan werken, kunt u met Excel de stappen voor uw macro in een bestaand blad vastleggen. Klik op het tabblad Ontwikkelaars om uw opties te bekijken.





U zoekt de derde optie in het lint, Macro opnemen . Klik hierop en er verschijnt een dialoogvenster waarin u uw macro een naam kunt geven en een sneltoets kunt instellen. U kunt uw macro instellen op de Huidige werkmap , tot Nieuw werkboek , of in uw Persoonlijk macrowerkboek . De persoonlijke macrowerkmap bevindt zich in uw gebruikersprofiel en stelt u in staat uw macro's tussen uw bestanden te gebruiken.

Nadat u uw acties hebt vastgelegd, zijn ze beschikbaar op hetzelfde tabblad. Als u op macro's klikt, worden de opgeslagen macro's in uw werkmap weergegeven. Klik op uw macronaam en klik op Loop om uw opgenomen acties uit te voeren.





Voorbeeld 1: Dagelijkse verkooptotaal en uurgemiddelde

Voor een voorbeeldmacro gaat u een dagelijkse verkooplijst doornemen, waarbij de verkopen worden uitgesplitst naar uurtotalen. Uw macro voegt een dagelijks verkooptotaal toe en voegt vervolgens een gemiddelde toe in de laatste kolom van elke uurperiode. Als u in de detailhandel of een andere verkoopfunctie werkt, is dit een handig blad om de inkomsten bij te houden.

We moeten het eerste blad opzetten. Als u deze eerste blanco als sjabloon gebruikt om elke dag naar een nieuw tabblad te kopiëren, kunt u wat tijd besparen. Zet in de eerste kolom/rij Uur/Datum. Voeg bovenaan maandag tot en met vrijdag toe.

Zet vervolgens in de eerste kolom een ​​uitsplitsing van de uurtotalen van 8-5. Ik gebruikte 24-uurs tijd, maar je kunt de AM/PM-notatie gebruiken als je dat liever hebt. Uw blad moet overeenkomen met de bovenstaande schermafbeelding.

Voeg een nieuw tabblad toe en kopieer uw sjabloon erin. Vul dan uw verkoopgegevens voor de dag in. (Als u geen gegevens heeft om dit blad in te vullen, je mag binnenkomen = RandTussen (10.1000) in alle cellen om dummy-gegevens te maken.) Klik vervolgens op Ontwikkelaar in het lint.

Klik vervolgens op Macro opnemen . Voer in het dialoogvenster de naam in als Gemiddeldensom en laat het opgeslagen in Dit werkboek . U kunt desgewenst een sneltoets instellen. U kunt een beschrijving invoeren als u meer details wilt over wat de macro doet. Klik op OK om de macro in te stellen.

Voer onderaan de uurlijsten in Dagelijkse totalen . Typ in de cel ernaast =SOM(B2:B10) . Kopieer en plak dat vervolgens in de rest van de kolommen. Voeg vervolgens in de kop toe Gemiddeld na de laatste kolom. Voer vervolgens in de volgende cel naar beneden =Gemiddelde(B2:F2) . Plak dat vervolgens in de cellen in de rest van de kolom.

Dan klikken Stop met opnemen . Uw macro kan nu worden gebruikt op elk nieuw blad dat u aan uw werkmap toevoegt. Zodra u weer een gegevensblad heeft, gaat u terug naar Ontwikkelaar en klik Macro's . Uw macro moet worden gemarkeerd, klik op uitvoeren om uw sommen en gemiddelden toe te voegen.

Dit voorbeeld kan u een aantal stappen besparen, maar voor complexere acties die kunnen oplopen. Als u dezelfde bewerkingen uitvoert op gegevens met identieke opmaak, gebruik dan opgenomen macro's.

VBA-macro's in Excel op Mac

Handmatig opgenomen macro's in Excel helpen bij gegevens die altijd dezelfde grootte en vorm hebben. Het is ook handig als u acties op het hele blad wilt uitvoeren. U kunt uw macro gebruiken om het probleem te bewijzen.

Voeg nog een uur en dag toe aan het blad en voer de macro uit. U zult zien dat de macro uw nieuwe gegevens overschrijft. De manier waarop we dit omzeilen, is door code te gebruiken om de macro dynamischer te maken met behulp van VBA, wat een afgeslankte versie van Visual Basic . De implementatie is gericht op automatisering voor Office.

Het is niet zo makkelijk op te halen als Applescript , maar de automatisering van Office is volledig gebouwd rond Visual Basic. Dus als je er hier eenmaal mee werkt, kun je het snel omdraaien en gebruiken in andere Office-apps. (Het kan ook een grote hulp zijn als je op je werk vastzit aan een Windows-pc.)

Als je met VBA in Excel werkt, heb je een apart venster. De bovenstaande schermafbeelding is onze opgenomen macro zoals deze wordt weergegeven in de code-editor. De venstermodus kan handig zijn om met uw code te spelen terwijl u aan het leren bent. Wanneer uw macro wordt opgehangen, zijn er debugging-tools om naar de status van uw variabelen en bladgegevens te kijken.

Office 2016 wordt nu geleverd met de volledige Visual Basic-editor. Hiermee kunt u de Object Browser en debugging-tools gebruiken die voorheen beperkt waren tot de Windows-versie. U kunt de Objectbrowser openen door naar: Beeld > Objectbrowser of druk gewoon op Shift + Command + B . U kunt dan door alle beschikbare klassen, methoden en eigenschappen bladeren. Het was erg nuttig bij het construeren van de code in de volgende sectie.

Voorbeeld 2: Dagelijkse verkooptotaal en uurgemiddelde met code

Voordat u begint met het coderen van uw macro, laten we beginnen met het toevoegen van een knop aan de sjabloon. Deze stap maakt het voor een beginnende gebruiker veel gemakkelijker om toegang te krijgen tot uw macro. Ze kunnen op een knop klikken om de macro op te roepen in plaats van in de tabbladen en menu's te graven.

Schakel terug naar het lege sjabloonblad dat u in de laatste stap hebt gemaakt. Klik op Ontwikkelaar om terug te gaan naar het tabblad. Zodra u op het tabblad bent, klikt u op Knop . Klik vervolgens ergens in het blad op de sjabloon om de knop te plaatsen. Het macro-menu verschijnt, geef je macro een naam en klik op Nieuw .

Het Visual Basic-venster wordt geopend; je ziet het vermeld als Module2 in de projectbrowser. Het codevenster zal hebben: Sub AverageandSumButton() bovenaan en een paar regels naar beneden Einde sub . Uw code moet tussen deze twee in gaan, omdat dit het begin en het einde van uw macro is.

Stap 1: Variabelen declareren

Om te beginnen moet je al je variabelen declareren. Deze staan ​​in het codeblok hieronder, maar een opmerking over hoe ze zijn opgebouwd. U moet alle variabelen declareren met Geen voor de naam, en dan als met het gegevenstype.

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

Nu u al uw variabelen hebt, moet u meteen enkele van de bereikvariabelen gebruiken. Bereiken zijn objecten die delen van het werkblad als adressen bevatten. de variabele Alle cellen wordt ingesteld op alle actieve cellen op het blad, inclusief de kolom- en rijlabels. U krijgt dit door te bellen met de ActiveSheet object en dan is het GebruiktBereik eigendom.

Het probleem is dat u niet wilt dat de labels worden opgenomen in de gemiddelde en somgegevens. In plaats daarvan gebruikt u een subset van het AllCells-bereik. Dit wordt het TargetCells-bereik. U declareert handmatig het bereik. Het startadres wordt de cel op de tweede rij in de tweede kolom van het bereik.

Dit noem je door te bellen naar je Alle Cellen bereik, met behulp van zijn Cellen class om die specifieke cel te krijgen met behulp van (2.2) . Om de laatste cel in het bereik te krijgen, bel je nog steeds Alle Cellen . Deze keer met behulp van Speciale Cellen methode om de eigenschap te krijgen xlCellTypeLaatsteCel . U kunt deze beide in het onderstaande codeblok zien.

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

Stap 2: Voor elke lus

De volgende twee codesecties zijn For Each-lussen. Deze lussen gaan door een object om op elke subset van dat object in te werken. In dit geval doe je er twee, één voor elke rij en één voor elke kolom. Omdat ze bijna precies hetzelfde zijn, is er hier maar één van; maar beide bevinden zich in het codeblok. De details zijn vrijwel identiek.

Voordat u de lus voor elke rij start, moet u de doelkolom instellen waar de lus het gemiddelde van elke rij schrijft. Je gebruikt de KolomPlaatsHouder variabele om dit doel in te stellen. Je stelt het gelijk aan de Graaf variabele van de Cellen klas van Alle Cellen . Voeg er een toe om het naar de rechterkant van uw gegevens te verplaatsen door toe te voegen +1 .

Vervolgens ga je de lus starten met voor elk . Vervolgens wilt u een variabele maken voor de subset, in dit geval subrij . Na de In , we stellen het hoofdobject in dat we aan het ontleden zijn Doelcellen . Toevoegen .Rijen aan het einde om de lus te beperken tot alleen elke rij, in plaats van elke cel in het bereik.

Binnen de lus gebruikt u de ActiveSheet.Cells-methode om een ​​specifiek doel op het blad in te stellen. De coördinaten worden ingesteld met subRij.Rij om de rij te krijgen waarin de lus zich momenteel bevindt. Dan gebruik je KolomPlaatsHouder voor de andere coördinaat.

Deze gebruik je voor alle drie de stappen. De eerste die je toevoegt .waarde na de haakjes en stel gelijk aan WerkbladFunctie.Gemiddeld (subrij) . Dit schrijft de formule voor het gemiddelde van de rij in uw doelcel. De volgende regel die u toevoegt .Stijl en stel dat gelijk aan 'Munteenheid' . Deze stap komt overeen met de rest van uw blad. Op de laatste regel voeg je toe .Lettertype vetgedrukt en stel het gelijk aan Waar . (Merk op dat er geen aanhalingstekens omheen staan, omdat het de booleaanse waarde is.) Deze regel maakt het lettertype vet om de samenvattingsinformatie te laten opvallen van de rest van het blad.

Beide stappen staan ​​in het onderstaande codevoorbeeld. De tweede lus verwisselt rijen voor kolommen en verandert de formule in Som . Als u deze methode gebruikt, worden uw berekeningen gekoppeld aan het formaat van het huidige blad. Anders is het gekoppeld aan de grootte op het moment dat u de macro opneemt. Dus wanneer je meer dagen of uren werkt, groeit de functie mee met je data.

Google Drive overzetten van het ene account naar het andere
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

Stap 3: Label uw samenvattingen

Label vervolgens de nieuwe rij en kolom, set RijPlaatsHouder en KolomPlaatsHouder opnieuw. Eerste gebruik AllCells.Rij om de eerste rij in het bereik te krijgen, en dan AllCells.Kolom+1 om de laatste kolom te krijgen. Vervolgens gebruikt u dezelfde methode als de lus om de waarde in te stellen op 'Gemiddelde omzet' . Je zult ook hetzelfde gebruiken .Lettertype vetgedrukt eigenschap om uw nieuwe label vet te maken.

Keer het dan om en stel uw tijdelijke aanduidingen in op de eerste kolom en de laatste rij om toe te voegen 'Totale verkoop' . Dit wil je ook vet maken.

Beide stappen staan ​​in het onderstaande codeblok. Dit is het einde van de macro opgemerkt door Einde sub . U zou nu de volledige macro moeten hebben en op de knop kunnen klikken om deze uit te voeren. Je kunt al deze codeblokken op volgorde in je Excel-blad plakken als je wilt valsspelen, maar waar is het plezier daarin?

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

Wat biedt de toekomst voor macro's in Excel op Mac?

Opgenomen macro's zijn geweldig om te gebruiken voor voorspelbare herhalingen. Zelfs als het iets eenvoudigs is als het formaat van alle cellen en vette kopteksten, kunnen deze u tijd besparen. Alleen maar vermijd veelvoorkomende macrofouten .

Visual Basic opent de deur voor Mac Excel-gebruikers om diep in Office-automatisering te graven. Visual Basic was traditioneel alleen beschikbaar op Windows. Hiermee kunnen uw macro's zich dynamisch aanpassen aan de gegevens, waardoor ze veelzijdiger worden. Als je het geduld hebt, kan dit de deur zijn naar meer geavanceerde programmering.

Wilt u meer tijdbesparende spreadsheettrucs? Leer hoe u specifieke gegevens automatisch kunt markeren met voorwaardelijke opmaak in Excel en voorwaardelijke markering in Numbers op de Mac.

Deel Deel Tweeten E-mail 3 manieren om te controleren of een e-mail echt of nep is

Als je een e-mail hebt ontvangen die er een beetje dubieus uitziet, is het altijd het beste om de authenticiteit ervan te controleren. Hier zijn drie manieren om te zien of een e-mail echt is.

Lees volgende
Gerelateerde onderwerpen
  • Mac
  • productiviteit
  • Programmeren
  • Visual Basic-programmering
  • Microsoft Excel
Over de auteur Michael McConnell(44 artikelen gepubliceerd)

Michael gebruikte geen Mac toen ze gedoemd waren, maar hij kan coderen in Applescript. Hij heeft diploma's in computerwetenschappen en Engels; hij schrijft al een tijdje over Mac, iOS en videogames; en hij is al meer dan tien jaar een IT-aap overdag, gespecialiseerd in scripting en virtualisatie.

Meer van Michael McConnell

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren
Categorie Mac