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: die kunt u maken door uw acties snel vast te leggen en degene die VBA gebruiken om geavanceerdere automatiseringen te ontwerpen. Met Office 2016 gebruikt Excel dezelfde codebase op alle platforms. Met deze wijziging kunnen macro's eenvoudiger op verschillende platforms werken.
Laten we dus eens kijken hoe dit momenteel werkt op macOS.
Macro's inschakelen in Excel op Mac
Werken met macro's in Excel op je Mac is mogelijk niet standaard ingeschakeld. Deze instelling is omdat macro's een mogelijke vector voor malware kunnen zijn. Hoe u uzelf tegen Microsoft Word Malware kunt beschermen Hoe uzelf tegen Microsoft Word-malware kunt beschermen Wist u dat uw computer kan worden geïnfecteerd door kwaadwillende Microsoft Office-documenten of dat u kunt worden gedupeerd om in te schakelen? de instellingen die ze nodig hebben om uw computer te infecteren? Lees verder . De makkelijkste manier om te vertellen is om te zien of je de hebt Ontwikkelaar tabblad beschikbaar op het lint in Excel. Als u het niet ziet, is het eenvoudig in te schakelen.
Klik op uitmunten in de menubalk en selecteer vervolgens voorkeuren in de vervolgkeuzelijst. Klik in het menu op Lint en werkbalk. In de rechterlijst, Ontwikkelaar moet onderaan staan, klik op het selectievakje. Klik ten slotte op Opslaan en je zou het Ontwikkelaar-tabblad 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 na het opnieuw openen van het bestand. Als u het vergeet, zal Excel u elke keer dat u probeert op te slaan eraan herinneren. Je moet ook macro's inschakelen telkens wanneer je het bestand opent.
Handmatig opnemen van een macro in Excel op Mac
Hoewel je macro's kunt coderen 4 Fouten die je kunt vermijden bij het programmeren van Excel-macro's met VBA 4 Fouten die je kunt vermijden bij het programmeren van Excel-macro's met VBA Eenvoudige code en macro's zijn de sleutels tot Microsoft Excel-superkrachten. Zelfs niet-programmeurs kunnen gemakkelijk indrukwekkende functionaliteit toevoegen aan hun spreadsheets met Virtual Basics for Applications (VBA). Vermijd gewoon deze programmeerfouten voor beginners! Meer lezen, dat is misschien niet voor iedereen. Als u nog niet klaar bent om met VBA te gaan werken, kunt u met Excel de stappen voor uw macro in een bestaand werkblad opslaan. Klik op het tabblad Ontwikkelaar om uw opties te bekijken.
U bent op zoek naar 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 werkboek, een Nieuw werkboek, of in jouw Persoonlijke macrowerkmap. Het persoonlijke macrowerkboek bevindt zich in uw gebruikersprofiel en laat u uw macro's gebruiken tussen uw bestanden.
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 Rennen om uw opgenomen acties uit te voeren.
Voorbeeld 1: Dagelijks verkooptotaal en Uurgemiddelde
Voor een voorbeeldmacro, gaat u een dagelijks verkoopblad doorlopen, waarbij de omzet wordt uitgesplitst op 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 te volgen.
We moeten het eerste blad instellen. Het gebruik van deze eerste lege sjabloon als een sjabloon om elke dag naar een nieuw tabblad te kopiëren, kan u tijd besparen. Zet in de eerste kolom / rij uur / datum. Aan de overkant voeg je van maandag tot vrijdag toe.
Zet dan in de eerste kolom een uitsplitsing van 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 screenshot.
Voeg een nieuw tabblad toe en kopieer uw sjabloon erin. Vul vervolgens uw verkoopgegevens voor de dag in. (Als u geen gegevens hebt om dit blad in te vullen, kunt u dit invoeren = ASELECTTUSSEN (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 AverageandSum en laat het opgeslagen in Dit werkboek. U kunt desgewenst een sneltoets instellen. U kunt een beschrijving invoeren als u meer informatie wilt over wat de macro doet. Klik op OK om te beginnen met het instellen van de macro.
Onderaan de uurlijkse lijsten ga je naar Dagelijkse totalen. Voer in de cel ernaast in = SOM (B2: B10). Kopieer en plak dat dan in de rest van de kolommen. Voeg vervolgens in de koptekst toe Gemiddelde na de laatste kolom. Ga vervolgens in de volgende cel naar beneden = Gemiddelde (B2: F2). Plak dat dan in de cellen in de rest van de kolom.
Dan klikken Stop met opnemen. Uw macro kan nu gebruiken op elk nieuw blad dat u aan uw werkmap toevoegt. Zodra u nog een gegevensvel hebt, 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 paar stappen besparen, maar voor complexere acties die kunnen oplopen. Als u dezelfde bewerkingen uitvoert op gegevens met identieke opmaak, gebruikt u de opgenomen macro's.
VBA-macro's in Excel op Mac
Handmatig opgenomen macro's in Excel helpen met gegevens die altijd dezelfde grootte en vorm hebben. Het is ook handig als u acties op het gehele blad wilt uitvoeren. U kunt uw macro gebruiken om het probleem te bewijzen.
Voeg nog een uur en een dag toe aan het blad en voer de macro uit. Je zult zien dat de macro je nieuwe gegevens overschrijft. De manier waarop we dit omzeilen, is het gebruik van code om de macro dynamischer te maken met behulp van VBA, wat een afgeslankte versie van Visual Basic 4 is. Geweldige websites om je een Visual Basic-goeroe te maken 4 geweldige websites om je een Visual Basic-goeroe te maken Visual Basic? Hier zijn enkele geweldige bronnen om u op weg te helpen. Lees verder . De implementatie richt zich op automatisering voor Office.
Het is niet zo eenvoudig om het op te nemen als Applescript Leer om uw Mac te automatiseren met AppleScript [Deel 1: Inleiding] Leer uw Mac te automatiseren met AppleScript [Deel 1: Inleiding] Lees meer, maar de automatisering van Office is volledig rond Visual Basic opgebouwd. Dus als u hier eenmaal mee werkt, kunt u zich snel omdraaien en gebruiken in andere Office-apps. (Het kan ook een grote hulp zijn als je vastzit op een Windows-pc op je werk.)
Wanneer u met VBA in Excel werkt, hebt u een afzonderlijk venster. De bovenstaande schermafbeelding is onze opgenomen macro zoals deze wordt weergegeven in de codebewerker. De venstermodus kan handig zijn om met uw code te spelen terwijl u aan het leren bent. Wanneer uw macro wordt opgehangen, zijn er hulpprogramma's voor foutopsporing om naar de status van uw variabelen en werkbladgegevens te kijken.
Office 2016 wordt nu geleverd met de volledige Visual Basic-editor. Hiermee kunt u de Objectbrowser en foutopsporingsprogramma's 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 bladeren door alle beschikbare klassen, methoden en eigenschappen. Het was erg handig bij het construeren van de code in de volgende sectie.
Voorbeeld 2: Dagelijks verkooptotaal en Uurgemiddelde met code
Voordat we beginnen met het coderen van uw macro, laten we beginnen met het toevoegen van een knop aan de sjabloon. Met deze stap is het voor een beginnende gebruiker veel eenvoudiger om toegang te krijgen tot uw macro. Ze kunnen op een knop klikken om de macro te bellen 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 macros-menu verschijnt, geef uw macro een naam en klik nieuwe.
Het Visual Basic-venster wordt geopend; je ziet het als vermeld Module2 in de projectbrowser. Het codevenster heeft Sub AverageandSumButton () aan de bovenkant en een paar regels naar beneden End Sub. Uw code moet tussen deze twee staan, omdat dit het begin en het einde van uw macro is.
Stap 1: Variabelen declareren
Om te beginnen, moet u al uw variabelen declareren. De grondbeginselen van computerprogrammering 101 - Variabelen en gegevenstypes De basisprincipes van computerprogrammering 101 - Variabelen en gegevenstypes Na een introductie en bespreking van objectgeoriënteerde programmering voor en waar de naamgever vandaan komt, Ik dacht dat het tijd werd om de absolute basis van programmeren op een niet-taalspecifieke manier te doorlopen. Dit ... Lees meer. Deze staan in het onderstaande codeblok, maar een notitie over hoe ze zijn geconstrueerd. U moet alle variabelen declareren verduisteren voor de naam en dan zoals met het datatype.
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 voor alle actieve cellen op het blad, inclusief de kolom- en rijlabels. Je krijgt dit door het ActiveSheet object en dan is het UsedRange 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 zal het TargetCells-bereik zijn. U declareert handmatig het bereik. Het startadres wordt de cel op de tweede rij in de tweede kolom van het bereik.
Je noemt dit door jouw te noemen AllCells bereik, gebruikmakend van zijn Cellen klasse om die specifieke cel te gebruiken (2,2). Om de laatste cel in het bereik te krijgen, belt u nog steeds AllCells. Deze keer gebruiken SpecialCells methode om de woning te krijgen xlCellTypeLastCell. U kunt beide in het onderstaande codeblok zien.
Set AllCells = ActiveSheet.UsedRange Set TargetCells = Range (AllCells.Cells (2, 2), AllCells.SpecialCells (xlCellTypeLastCell))
Stap 2: voor elke loops
De volgende twee secties van code zijn For Each The Absolute Basics Of Programming For Beginners (Deel 2) De absolute basisprincipes van programmeren voor beginners (deel 2) In deel 2 van onze absolute beginnersgids voor programmeren, zal ik de basisbeginselen van functies, retourwaarden, loops en conditionals. Zorg ervoor dat je deel 1 hebt gelezen voordat je dit aanpakt, waar ik de ... Lees meer loops heb uitgelegd. Deze lussen gaan door een object om op elke subset van dat object in te werken. In dit geval doet u er twee, één voor elke rij en één voor elke kolom. Omdat ze bijna precies hetzelfde zijn, is er maar één hier; 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. U gebruikt de ColumnPlaceHolder variabele om dit doel in te stellen. U stelt het gelijk aan de tellen variabele van de Cellen klas van AllCells. Voeg er een aan toe om hem rechts naast je gegevens te plaatsen door hem toe te voegen +1.
Vervolgens start je de lus door te gebruiken Voor elk. Vervolgens wilt u in dit geval een variabele voor de subset maken, subrow. Na de In, we stellen het hoofdobject in dat we parsen TargetCells. 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 methode ActiveSheet.Cells om een specifiek doel op het vel in te stellen. De coördinaten worden ingesteld met behulp van subRow.Row om de rij te krijgen waar de lus zich momenteel in bevindt. Dan gebruik je ColumnPlaceHolder voor de andere coördinaat.
U gebruikt dit voor alle drie de stappen. De eerste die je toevoegt .waarde na de haakjes en gelijk aan gezet WorksheetFunction.Average (subrow). Dit schrijft de formule voor het gemiddelde van de rij in uw doelcel. De volgende regel die je toevoegt .Stijl en stel dat gelijk aan “Valuta”. 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. (Let op: hier staan geen aanhalingstekens, omdat dit de booleaanse waarde is.) Deze regel geeft het lettertype een vet kleur zodat de samenvatting info beter opvalt dan de rest van het blad.
Beide stappen zijn in het onderstaande codevoorbeeld. De tweede lus ruilt 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 u meer dagen of uren werkt, groeit de functie mee met uw gegevens.
ColumnPlaceHolder = AllCells.Columns.Count + 1 voor elke subRow in TargetCells.Rows ActiveSheet.Cells (subRow.Row, ColumnPlaceHolder) .Value = WorksheetFunction.Average (subRow) ActiveSheet.Cells (subRow.Row, ColumnPlaceHolder) .Style = "Valuta "ActiveSheet.Cells (subRow.Row, ColumnPlaceHolder) .Font.Bold = True Volgende subRow RowPlaceHolder = AllCells.Rows.Count + 1 voor elke subkolom In TargetCells.Columns ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Value = WorksheetFunction. Som (subkolom) ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Style = "Valuta" ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Font.Bold = "True" Volgende subKolom
Stap 3: Label uw samenvattingen
Label vervolgens de nieuwe rij en kolom, ingesteld RowPlaceHolder en ColumnPlaceHolder nog een keer. Eerste gebruik AllCells.Row om de eerste rij in het bereik te krijgen en vervolgens AllCells.Column + 1 om de laatste kolom te krijgen. Vervolgens gebruikt u dezelfde methode als de lus om de waarde in te stellen “Gemiddelde omzet”. Je zult ook hetzelfde gebruiken .Lettertype vetgedrukt eigenschap om uw nieuwe label vet te maken.
Draai het vervolgens om en zet uw tijdelijke aanduidingen op de eerste kolom en de laatste rij om toe te voegen “Totale verkoop”. Je wilt dit ook vet maken.
Beide stappen staan in het onderstaande codeblok. Dit is het einde van de macro genoteerd door End Sub. U zou nu de volledige macro 5 Resources voor Excel-macro's moeten hebben om uw spreadsheets te automatiseren 5 Bronnen voor Excel-macro's om uw spreadsheets te automatiseren Zoeken naar Excel-macro's? Hier zijn vijf sites die hebben wat je zoekt. Lees Meer en klik op de knop om het uit te voeren. U kunt al deze codeblokken op volgorde in uw Excel-blad plakken als u wilt vals spelen, maar waar ligt het plezier in?
ColumnPlaceHolder = AllCells.Columns.Count + 1 RowPlaceHolder = AllCells.Row ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder) .Value = "Gemiddelde verkoop" 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 is 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 wijzigen van de grootte van alle cellen en vetgedrukte headers, kunnen deze u tijd besparen.
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 aan de gegevens aanpassen, waardoor ze veelzijdiger worden. Als je het geduld hebt, kan dit de deur naar meer geavanceerde programmering zijn.
Ontdek meer over: Microsoft Excel, Visual Basic Programming.