[RISOLTO] Il tuo computer è offline, accedi con lultima password Windows 10
Se stai riscontrando l
Un paio di giorni fa, volevo automatizzare il compito piuttosto banale di creare alcune diapositive di PowerPoint. Quando si automatizza PowerPoint, in genere si lavora con la raccolta Presentazioni e forme. Presentazioni è piuttosto autoesplicativo e le forme sono praticamente tutto il resto, inclusi caselle di testo, pulsanti di azione, oggetti multimediali, etichette, immagini, callout, diagrammi di flusso e così via. Anche se mostrerò le tecniche con PowerPoint, parte della sintassi è in realtà abbastanza applicabile a Microsoft Word ed Excel.
Solo per ricapitolare, prima di iniziare con lo sviluppo di macro VBA in PowerPoint è necessario che la scheda di sviluppo sia abilitata .
Innanzitutto, iniziamo creando automaticamente una presentazione con alcune diapositive come mostrato in questo tutorial: creazione di una presentazione in VBA .
Ora possiamo iniziare a lavorare con Shapes. Prima di tutto, andiamo avanti e apriamo l'editor VBA premendo Alt + F11. Se hai seguito il tutorial precedente, dovresti avere il modulo 1 nell'elenco dei moduli (come mostrato di seguito)
Lavorare con le forme con VBA
Aggiunta di una casella di testo con VBA
Inizieremo aggiungendo una casella di testo verticale alla nostra prima diapositiva nella presentazione. Aggiungi il codice seguente a Module1, quindi vai avanti e premi il pulsante Salva (Ctrl+s) ed Esegui la tua macro (premi F5 o premi Esegui modulo utente/sottoposto).
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
Nota che puoi ridimensionare le dimensioni della tua casella di testo abbastanza facilmente con VBA. In questo caso ridimensioneremo la prima forma nella seconda diapositiva, sentiti libero di modificare secondo necessità.
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
Effetti di testo con VBA
Assumiamo ora di voler aggiungere una casella di testo a tutte le diapositive della presentazione, questa volta un po' più visivamente accattivante. Per fare ciò utilizzeremo VBA per creare effetti di testo personalizzati che siamo in grado di incorporare in una o più diapositive della presentazione. Per prima cosa andremo a scorrere le diapositive della presentazione e quindi aggiungeremo l'effetto testo secondo necessità.
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
Ecco il risultato ;-):
Nota che potresti anche usare una semplice filigrana per ottenere questo risultato specifico.
Callout PowerPoint con VBA
Il nostro prossimo esempio sarà l'aggiunta di callout alla tua presentazione. In questo esempio aggiungeremo un callout alla seconda diapositiva.
Sub CreateCallout()
ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _ Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"
End Sub
Molte proprietà di formattazione delle forme non vengono impostate dalle proprietà che si applicano direttamente all'oggetto Shape o ShapeRange . Gli attributi di forma correlati vengono invece raggruppati in oggetti secondari, ad esempio l' oggetto FillFormat , che contiene tutte le proprietà correlate al riempimento della forma, o l' oggetto LinkFormat , che contiene tutte le proprietà univoche degli oggetti OLE collegati. Per impostare le proprietà per una forma, è necessario prima restituire l'oggetto che rappresenta l'insieme di attributi della forma correlati e quindi impostare le proprietà dell'oggetto restituito. Ad esempio, utilizzi la proprietà Fill per restituire l' oggetto FillFormat , quindi imposti la proprietà ForeColor dell'oggetto FillFormat per impostare il colore di riempimento in primo piano per la forma specificata, come illustrato nell'esempio seguente.
V.B
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
Nell'interfaccia utente sono presenti alcune operazioni che è possibile eseguire con diverse forme selezionate; ad esempio, puoi selezionare più forme e impostare tutti i riempimenti individuali contemporaneamente. Esistono altre operazioni che puoi eseguire solo con una singola forma selezionata; ad esempio, puoi modificare il testo in una forma solo se è selezionata una singola forma.
In Visual Basic esistono due modi per applicare proprietà e metodi a un insieme di forme. Questi due modi consentono di eseguire qualsiasi operazione eseguibile su una singola forma in un intervallo di forme, indipendentemente dal fatto che sia possibile eseguire o meno la stessa operazione nell'interfaccia utente.
Se l'operazione funziona su più forme selezionate nell'interfaccia utente, è possibile eseguire la stessa operazione in Visual Basic costruendo una raccolta ShapeRange che contiene le forme con cui si desidera lavorare e applicando le proprietà e i metodi appropriati direttamente alla raccolta ShapeRange .
Se l'operazione non funziona su più forme selezionate nell'interfaccia utente, è comunque possibile eseguire l'operazione in Visual Basic scorrendo la raccolta Shapes o una raccolta ShapeRange che contiene le forme con cui si desidera lavorare e applicando le proprietà appropriate e metodi ai singoli oggetti Shape nella raccolta.
Molte proprietà e metodi applicabili all'oggetto Shape e alla raccolta ShapeRange falliscono se applicati a determinati tipi di forme. Ad esempio, la proprietà TextFrame ha esito negativo se applicata a una forma che non può contenere testo. Se non sei sicuro che a ogni forma in una raccolta ShapeRange possa essere applicata una determinata proprietà o metodo, non applicare la proprietà o il metodo alla raccolta ShapeRange . Se si desidera applicare una di queste proprietà o metodi a una raccolta di forme, è necessario scorrere la raccolta e testare ogni singola forma per assicurarsi che sia un tipo di forma appropriato prima di applicarvi la proprietà o il metodo.
Se è possibile eseguire contemporaneamente un'operazione su più forme selezionate nell'interfaccia utente, è possibile eseguire l'equivalente a livello di codice costruendo una raccolta ShapeRange e quindi applicandovi le proprietà o i metodi appropriati. Nell'esempio seguente viene costruito un intervallo di forme che contiene le forme denominate "Big Star" e "Little Star" e applica loro un riempimento sfumato.myDocument
V.B
Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes _
.Range(Array("Big Star", "Little Star"))
myRange.Fill.PresetGradient msoGradientHorizontal, _
1, msoGradientBrass
Di seguito sono riportate linee guida generali sul comportamento di proprietà e metodi quando vengono applicati a una raccolta ShapeRange .
Applicare un metodo alla raccolta equivale ad applicare il metodo a ogni singolo oggetto Shape in quella raccolta.
Impostare il valore di una proprietà della collezione equivale a impostare il valore della proprietà di ogni singola forma presente in quell'intervallo.
Una proprietà della raccolta che restituisce una costante restituisce il valore della proprietà per una singola forma nella raccolta se tutte le forme nella raccolta hanno lo stesso valore per quella proprietà. Se non tutte le forme nella raccolta hanno lo stesso valore per la proprietà, restituisce la costante "mista".
Una proprietà della raccolta che restituisce un tipo di dati semplice (come Long , Single o String ) restituisce il valore della proprietà per una singola forma se tutte le forme nella raccolta hanno lo stesso valore per quella proprietà.
Il valore di alcune proprietà può essere restituito o impostato solo se nella raccolta è presente esattamente una forma. Se nell'insieme è presente più di una forma, si verifica un errore di runtime. Questo è generalmente il caso della restituzione o dell'impostazione di proprietà quando l'azione equivalente nell'interfaccia utente è possibile solo con una singola forma (azioni come la modifica del testo in una forma o la modifica dei punti di una forma libera).
Le linee guida precedenti si applicano anche quando si impostano le proprietà delle forme raggruppate in oggetti secondari della raccolta ShapeRange , ad esempio l' oggetto FillFormat . Se l'oggetto secondario rappresenta operazioni che possono essere eseguite su più oggetti selezionati nell'interfaccia utente, sarai in grado di restituire l'oggetto da una raccolta ShapeRange e impostarne le proprietà. Ad esempio, puoi utilizzare la proprietà Fill per restituire l' oggetto FillFormat che rappresenta i riempimenti di tutte le forme nella raccolta ShapeRange . L'impostazione delle proprietà di questo oggetto FillFormat imposterà le stesse proprietà per tutte le singole forme nella raccolta ShapeRange .
Anche se non è possibile eseguire contemporaneamente un'operazione su più forme nell'interfaccia utente selezionandole e quindi utilizzando un comando, è possibile eseguire l'azione equivalente a livello di codice scorrendo la raccolta Shapes o una raccolta ShapeRange che contiene le forme desiderate. con cui si desidera lavorare e applicare le proprietà e i metodi appropriati ai singoli oggetti Shape nella raccolta. L'esempio seguente esegue il ciclo di tutte le forme e aggiunge testo a ogni forma che è una forma. e aggiunge testo a ogni forma che è una forma automatica.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
L'esempio seguente crea una raccolta ShapeRange che contiene tutte le forme attualmente selezionate nella finestra attiva e imposta il testo in ogni forma della raccolta che può contenere testo.
V.B
For Each sh in ActiveWindow.Selection.ShapeRange
If sh.HasTextFrame Then
sh.TextFrame.TextRange = "Initially selected"
End If
Next
Utilizzare i metodi Allinea e Distribuisci per posizionare un insieme di forme l'una rispetto all'altra o rispetto al documento che le contiene. Utilizza il metodo Raggruppa o Raggruppa per formare un'unica forma raggruppata da un insieme di forme.
Se stai riscontrando l
Vuoi spostare gli elementi in Presentazioni Google senza perdere la loro posizione relativa? Scopri come raggrupparli in pochi semplici passi.
Scopri come cancellare la cronologia delle connessioni desktop remoto in modo semplice e veloce seguendo i passaggi indicati.
Scopri come attivare o disattivare Caps Lock su Chromebook in modo semplice e veloce. Segui i nostri passaggi per personalizzare la tua esperienza di digitazione.
Scopri come regolare i rientri degli elenchi in Microsoft Word per migliorare la formattazione del tuo documento.
Stai riscontrando problemi con la connettività HDMI su Windows 11? Scopri come risolvere i problemi di HDMI con 11 semplici correzioni.
Scopri come risolvere Valheim continua a bloccarsi, bloccarsi, schermo nero e problemi di avvio. Segui queste soluzioni efficaci per giocare senza interruzioni.
Scopri come abilitare e personalizzare il lettore immersivo in Microsoft Word per una lettura più accurata, aiuto con la pronuncia delle parole e per ascoltare il documento letto ad alta voce.
Scopri come riprodurre i tuoi file musicali archiviati su Google Drive senza doverli scaricare. Utilizza Music Player per Google Drive per un
Scopri come risolvere l