Comment obtenir la dimension de diapositive Power Point à l'aide de VBA?
-
14-11-2019 - |
Question
Je travaille sur un projet. Dans lequel je veux découvrir "ma zone de texte sort-elle de la diapositive ou non?" . Si oui, affichez l'erreur msg.
Donc ma logique est que si j'ai trouvé la dimension de la diapositive, je l'utiliserai si ... sinon condition comme:
If textbox_position < slide_dimension then
#Error
end if
Si vous avez une autre idée, veuillez me le dire.
Merci
La solution
Les propriétés .PagesEtup.SlideWidth de la présentation et .SlideHeight vous donneront les dimensions de la diapositive en points.
Votre fonction devrait faire quelque chose comme (en haut de la tête et hors de l'air ..):
Function IsOffSlide (oSh as Shape) as Boolean
Dim sngHeight as single
Dim sngWidth as Single
Dim bTemp as Boolean
bTemp = False ' by default
With ActivePresentation.PageSetup
sngHeight = .SlideHeight
sngWidth = .SlideWidth
End With
' this could be done more elegantly and in fewer lines
' of code, but in the interest of making it clearer
' I'm doing it as a series of tests.
' If any of them are true, the function will return true
With oSh
If .Left < 0 Then
bTemp = True
End If
If .Top < 0 Then
bTEmp = True
End If
If .Left + .Width > sngWidth Then
bTemp = True
End If
If .Top + .Height > sngHeight Then
bTemp = True
End If
End With
IsOffSlide = bTemp
End Function
Autres conseils
Pourquoi n'utilisez-vous pas les espaces réservés de PowerPoint pour le faire? par exemple:
Sub SetText(IndexOfSlide As Integer, txt As String)
'http://officevb.com
ActivePresentation.Slides(IndexOfSlide).Shapes.Placeholders(1).TextFrame.TextRange.Text = txt
End Sub
Vous pouvez appeler ce sous-marin et passer les paramètres
IndexofSlide avec un certain nombre de diapositions et txt avec un texte à créer.