VBA - Powerpoint - texte Wrap en forme par programme
-
26-10-2019 - |
Question
Je travaille sur une petite bidouille autour avec Power Point pour créer automatiquement une zone de texte forme avec un effet prédéfini dans lequel le texte est récupéré dynamiquement du presse-papiers. Je calme un peu un problème, la fonctionnalité fonctionne très bien avec le script VB suivant avec des macros.
Sub ReadFromFile()
' CLIPBOARD
Dim MyData As DataObject
Dim strClip As String
' CLIPBOARD
Set MyData = New DataObject
MyData.GetFromClipboard
strClip = MyData.GetText
Set activeDocument = ActivePresentation.Slides(1)
With activeDocument
'Set QASlide = .Slides.Add(Index:=.Slides.Count + 0, Layout:=ppLayoutBlank)
activeDocument.Shapes.AddTextEffect PresetTextEffect:=msoTextEffect28, _
Text:=strClip, _
FontName:="Garde Gothic", FontSize:=44, FontBold:=msoTrue, _
FontItalic:=msoFalse, Left:=25, Top:=25
With .Shapes(.Shapes.Count)
.Width = 200
.Height = 300
End With
End With
End Sub
Quelqu'un peut me aider à fournir le script pour envelopper le texte dans la forme qui a une largeur définie et la hauteur comme dans le code ci-dessus?
La solution
Je ne sais pas si je vous comprends bien, mais n'ajouter .TextFrame.WordWrap = msoTrue
au bloc ci-dessous résoudre votre problème?
With .Shapes(.Shapes.Count)
.Width = 200
.Height = 300
End With
Autres conseils
Je pense que vous cherchez ceci:
.Shapes(.Shapes.Count).TextFrame.TextRange.Text = strClip
Vous pouvez définir dans le même With
que vous définissez la hauteur et la largeur
Si vous souhaitez que le texte envelopper dans une forme, vous devrez utiliser autre chose qu'une forme de TextEffect.