Need to edge out the competition for your dream job? Train for certifications today.
Experts Exchange Solution brought to you by
"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.
' PowerPoint VBA Macro
' Purpose : Set all margins for all text shapes in a presentation
' Author : YOUpresent, http://youpresent.co.uk/
' Answer to ExpertsExchange question 29083118
Public Sub SetTextboxMargins()
Dim oSld As Slide
Dim oShp As Shape
Dim oGrpItem As Shape
For Each oSld In ActivePresentation.Slides
For Each oShp In oSld.Shapes
If oShp.Type = msoGroup Then
For Each oGrpItem In oShp.GroupItems
If oGrpItem.HasTextFrame Then SetMargins oGrpItem
If oShp.HasTextFrame Then SetMargins oShp
' Supporting function for SetTextboxMargins
' Purpose : Sets all margins for the referenced shape
' Inputs : oShp - PowerPoint shape containing a TextFrame
' Return : True if successful, False if error
Private Function SetMargins(oShp As Shape) As Boolean
On Error Resume Next
Select Case oShp.Type
Case msoTextBox, msoAutoShape
.MarginBottom = 1
.MarginLeft = 1
.MarginRight = 1
.MarginTop = 1
If Err = 0 Then SetMargins = True
On Error GoTo 0
Open in new window
Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.
From novice to tech pro — start learning today.
Premium members can enroll in this course at no extra cost.
Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.
Have a better answer? Share it in a comment.
Please enter a first name
Please enter a last name
Must be at least 4 characters long.
Join and Comment