Gember 2.7.53.0
Ginger is een gratis spelling- en grammaticacontrole.
Een paar dagen geleden wilde ik de nogal alledaagse taak van het maken van PowerPoint-dia's automatiseren. Bij het automatiseren van PowerPoint werk je meestal met de collectie Slides and Shapes. Dia's spreken voor zich en vormen zijn vrijwel al het andere, inclusief tekstvakken, actieknoppen, media-objecten, labels, afbeeldingen, toelichtingen, stroomdiagrammen enzovoort, enzovoort. Hoewel ik de technieken met PowerPoint zal demonstreren, is een deel van de syntaxis eigenlijk behoorlijk toepasbaar op Microsoft Word en Excel.
Om samen te vatten, voordat u aan de slag gaat met VBA-macroontwikkeling in PowerPoint, moet u uw ontwikkeltabblad hebben ingeschakeld .
Laten we beginnen met het automatisch maken van een presentatie met enkele dia's, zoals weergegeven in deze tutorial: een presentatie maken in VBA .
Nu kunnen we aan de slag met Shapes. Laten we eerst doorgaan en de VBA-editor openen door op Alt + F11 te drukken. Als je de vorige tutorial hebt gevolgd, zou je module 1 in je Modules-lijst moeten hebben (zoals hieronder weergegeven)
Werken met vormen met VBA
Een tekstvak toevoegen met VBA
We beginnen met het toevoegen van een verticaal tekstvak aan onze eerste dia in de presentatie. Voeg de volgende code toe aan Module1, ga je gang en druk op de knop Opslaan (Ctrl+s) en voer je macro uit (druk op F5 of druk op Sub-/gebruikersformulier uitvoeren).
Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)
With MySlide.Shapes
.AddTextbox(Orientation:=msoTextOrientationVertical, _
Left:=90, Top:=200, Width:=80, _
Height:=200).TextFrame.TextRange.Text _
= ("This is my vertical text box")
End With
End Sub
Merk op dat u de afmetingen van uw tekstvak vrij eenvoudig kunt wijzigen met VBA. In dit geval zullen we de grootte van de eerste vorm in de tweede dia aanpassen, voel je vrij om deze aan te passen als dat nodig is.
Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)
'Add your required dimensions as needed below
With MyShape
.Width = 200
.Height = 35
End With
End Sub
Teksteffecten met VBA
Laten we nu aannemen dat we een tekstvak willen toevoegen aan alle dia's in de presentatie, dit keer een beetje visueel aantrekkelijker. Om dat te doen, gebruiken we VBA om aangepaste teksteffecten te maken die we kunnen insluiten in een of meer dia's in de presentatie. We zullen eerst de presentatiedia's doorlopen en vervolgens het teksteffect toevoegen als dat nodig is.
Sub SetEffects()
Dim i As Integer
For i = 1 To ActivePresentation.Slides.Count
ActivePresentation.Slides(i) _
.Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
"Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next
End Sub
Hier is het resultaat ;-):
Merk op dat u net zo goed een eenvoudig watermerk kunt gebruiken om dit specifieke resultaat te bereiken.
PowerPoint-oproepen met VBA
Ons volgende voorbeeld is het toevoegen van highlights aan uw presentatie. In dit voorbeeld voegen we een toelichting toe aan de tweede dia.
Sub CreateCallout()
ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _ Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"
End Sub
Veel opmaakeigenschappen van vormen worden niet bepaald door eigenschappen die rechtstreeks van toepassing zijn op het Shape- of ShapeRange -object. In plaats daarvan worden gerelateerde vormkenmerken gegroepeerd onder secundaire objecten, zoals het FillFormat- object, dat alle eigenschappen bevat die betrekking hebben op de vulling van de vorm, of het LinkFormat- object, dat alle eigenschappen bevat die uniek zijn voor gekoppelde OLE-objecten. Om eigenschappen voor een vorm in te stellen, moet u eerst het object retourneren dat de reeks gerelateerde vormattributen vertegenwoordigt en vervolgens de eigenschappen van dat geretourneerde object instellen. U gebruikt bijvoorbeeld de eigenschap Fill om het object FillFormat te retourneren en vervolgens stelt u de eigenschap ForeColor van het object FillFormat in om de voorgrondkleur van de vulling in te stellen voor de opgegeven vorm, zoals weergegeven in het volgende voorbeeld.
V.B
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
In de gebruikersinterface zijn er enkele bewerkingen die u kunt uitvoeren met verschillende geselecteerde vormen; U kunt bijvoorbeeld meerdere vormen selecteren en al hun individuele vullingen in één keer instellen. Er zijn andere bewerkingen die u alleen kunt uitvoeren als u één enkele vorm hebt geselecteerd; U kunt de tekst in een vorm bijvoorbeeld alleen bewerken als er één vorm is geselecteerd.
In Visual Basic zijn er twee manieren om eigenschappen en methoden toe te passen op een reeks vormen. Op deze twee manieren kunt u elke bewerking uitvoeren die u op een enkele vorm kunt uitvoeren op een reeks vormen, ongeacht of u dezelfde bewerking wel of niet in de gebruikersinterface kunt uitvoeren.
Als de bewerking werkt op meerdere geselecteerde vormen in de gebruikersinterface, kunt u dezelfde bewerking uitvoeren in Visual Basic door een ShapeRange- collectie samen te stellen die de vormen bevat waarmee u wilt werken, en de juiste eigenschappen en methoden rechtstreeks op de ShapeRange- collectie toe te passen.
Als de bewerking niet werkt op meerdere geselecteerde vormen in de gebruikersinterface, kunt u de bewerking nog steeds uitvoeren in Visual Basic door de Shapes- collectie of een ShapeRange- collectie te doorlopen die de vormen bevat waarmee u wilt werken, en de juiste eigenschappen toe te passen. en methoden voor de afzonderlijke Shape- objecten in de verzameling.
Veel eigenschappen en methoden die van toepassing zijn op het Shape- object en de ShapeRange- verzameling mislukken als ze worden toegepast op bepaalde soorten vormen. De eigenschap TextFrame mislukt bijvoorbeeld als deze wordt toegepast op een vorm die geen tekst kan bevatten. Als u er niet zeker van bent dat op elke vorm in een ShapeRange- verzameling een bepaalde eigenschap of methode kan worden toegepast, pas de eigenschap of methode dan niet toe op de ShapeRange- verzameling. Als u een van deze eigenschappen of methoden op een verzameling vormen wilt toepassen, moet u de verzameling doorlopen en elke individuele vorm testen om er zeker van te zijn dat het een geschikt vormtype is voordat u de eigenschap of methode erop toepast.
Als u tegelijkertijd een bewerking op meerdere geselecteerde vormen in de gebruikersinterface kunt uitvoeren, kunt u het programmatische equivalent uitvoeren door een ShapeRange- verzameling samen te stellen en er vervolgens de juiste eigenschappen of methoden op toe te passen. In het volgende voorbeeld wordt een vormbereik geconstrueerd dat de AutoVormen met de namen "Grote Ster" en "Kleine Ster" bevat en er een verloopvulling op toepast en er een verloopvulling op toepast.myDocument
V.B
Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes _
.Range(Array("Big Star", "Little Star"))
myRange.Fill.PresetGradient msoGradientHorizontal, _
1, msoGradientBrass
Hieronder volgen algemene richtlijnen voor hoe eigenschappen en methoden zich gedragen wanneer ze worden toegepast op een ShapeRange- verzameling.
Het toepassen van een methode op de verzameling is gelijk aan het toepassen van de methode op elk afzonderlijk Shape- object in die verzameling.
Het instellen van de waarde van een eigenschap van de verzameling is gelijk aan het instellen van de waarde van de eigenschap van elke individuele vorm in dat bereik.
Een eigenschap van de collectie die een constante retourneert, retourneert de waarde van de eigenschap voor een individuele vorm in de collectie als alle vormen in de collectie dezelfde waarde voor die eigenschap hebben. Als niet alle vormen in de verzameling dezelfde waarde voor de eigenschap hebben, wordt de constante 'gemengd' geretourneerd.
Een eigenschap van de verzameling die een eenvoudig gegevenstype retourneert (zoals Long , Single of String ) retourneert de waarde van de eigenschap voor een individuele vorm als alle vormen in de verzameling dezelfde waarde voor die eigenschap hebben.
De waarde van sommige eigenschappen kan alleen worden geretourneerd of ingesteld als er precies één vorm in de verzameling aanwezig is. Als de verzameling meer dan één vorm bevat, treedt er een runtimefout op. Dit is over het algemeen het geval voor het retourneren of instellen van eigenschappen wanneer de equivalente actie in de gebruikersinterface alleen mogelijk is met een enkele vorm (acties zoals het bewerken van tekst in een vorm of het bewerken van de punten van een vrije vorm).
De voorgaande richtlijnen zijn ook van toepassing wanneer u eigenschappen instelt van vormen die zijn gegroepeerd onder secundaire objecten van de ShapeRange- collectie, zoals het FillFormat- object. Als het secundaire object bewerkingen vertegenwoordigt die kunnen worden uitgevoerd op meerdere geselecteerde objecten in de gebruikersinterface, kunt u het object retourneren uit een ShapeRange- verzameling en de eigenschappen ervan instellen. U kunt bijvoorbeeld de eigenschap Fill gebruiken om het object FillFormat te retourneren dat de vullingen van alle vormen in de ShapeRange- collectie vertegenwoordigt. Als u de eigenschappen van dit FillFormat- object instelt, worden dezelfde eigenschappen ingesteld voor alle afzonderlijke vormen in de ShapeRange- collectie.
Zelfs als u niet tegelijkertijd een bewerking op meerdere vormen in de gebruikersinterface kunt uitvoeren door ze te selecteren en vervolgens een opdracht te gebruiken, kunt u de equivalente actie programmatisch uitvoeren door door de Shapes- verzameling te bladeren of door een ShapeRange- verzameling die de vormen bevat die u wilt gebruiken. waarmee u wilt werken en de juiste eigenschappen en methoden wilt toepassen op de afzonderlijke Shape- objecten in de verzameling. In het volgende voorbeeld worden alle vormen doorlopen en wordt tekst toegevoegd aan elke vorm die een AutoVorm is. en voegt tekst toe aan elke vorm die een AutoVorm is.myDocument
V.B
Set myDocument = ActivePresentation.Slides(1)
For Each sh In myDocument.Shapes
If sh.Type = msoAutoShape Then
sh.TextFrame.TextRange.InsertAfter " (version 1)"
End If
Next
In het volgende voorbeeld wordt een ShapeRange- verzameling samengesteld die alle momenteel geselecteerde vormen in het actieve venster bevat, en wordt de tekst in elke vorm in de verzameling ingesteld die tekst kan bevatten.
V.B
For Each sh in ActiveWindow.Selection.ShapeRange
If sh.HasTextFrame Then
sh.TextFrame.TextRange = "Initially selected"
End If
Next
Gebruik de methoden Uitlijnen en Verdelen om een reeks vormen ten opzichte van elkaar of ten opzichte van het document dat ze bevat te positioneren. Gebruik de Group- methode of de Regroup- methode om één gegroepeerde vorm te vormen uit een reeks vormen.
Ginger is een gratis spelling- en grammaticacontrole.
Blocks is een intellectueel spel voor leerlingen van de derde klas van de basisschool om hun detectie- en oogvaardigheden te oefenen en wordt door docenten opgenomen in het IT-onderwijsondersteuningsprogramma.
Prezi is een gratis applicatie waarmee u digitale presentaties kunt maken, zowel online als offline.
Mathway is een zeer nuttige app waarmee u al die wiskundige problemen kunt oplossen waarvoor een complexer hulpmiddel nodig is dan de ingebouwde rekenmachine van uw apparaat.
Adobe Presenter is e-Learning-software uitgegeven door Adobe Systems en beschikbaar op het Microsoft Windows-platform als een Microsoft PowerPoint-plug-in.
Toucan is een educatief technologieplatform. Hiermee kunt u een nieuwe taal leren terwijl u op gewone, alledaagse websites surft.
eNetViet is een applicatie die ouders helpt in contact te komen met de school waar hun kinderen studeren, zodat ze de huidige leersituatie van hun kind duidelijk kunnen begrijpen.
Duolingo - Leer gratis talen, of kortweg Duolingo, is een educatief programma waarmee je veel verschillende talen kunt leren en oefenen.
RapidTyping is een handige en gebruiksvriendelijke tool voor toetsenbordtraining waarmee u uw typsnelheid kunt verbeteren en spelfouten kunt verminderen. Met lessen georganiseerd voor veel verschillende niveaus, leert RapidTyping u hoe u kunt typen of bestaande vaardigheden kunt verbeteren.
MathType is interactieve vergelijkingssoftware van ontwikkelaar Design Science (Dessci), waarmee u wiskundige notaties kunt maken en annoteren voor tekstverwerking, presentaties, eLearning, enz. Deze editor wordt ook gebruikt voor het maken van TeX-, LaTeX- en MathML-documenten.