We help IT Professionals succeed at work.

Change All Bullets in Powerpoint Presentation

HaimD
HaimD used Ask the Experts™
on
How can I update all the bullets in my 400 slide Powerpoint presentation quickly and not have to go through each slide and click on the box one by one and change?  

It is way too time consuming!  

VBA Code is welcome as I know VBA well from using Excel.

Thanks
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Commented:
Try changing the view to Outline mode and then selecting all.  You can then change the bullets all at once.

Author

Commented:
Thanks cmeola,

But it didn't quite work out...I cannot highlight sporadic areas to do the bullet point change (i.e., not every slide has a bullet point).

And, if I change all the slides, many slides will get bullet points which shouldn't.

Any other ideas?
CEO PowerPoint Alchemy
Commented:
You really need to specify what type to change and to what!

This could start you off though:


Sub myBullets()
Dim otxtr As TextRange
Dim i As Integer
Dim Y As Integer
Dim osld As Slide
Dim oshp As Shape
For Each osld In ActivePresentation.Slides
For Each oshp In osld.Shapes
If oshp.HasTextFrame Then
If oshp.TextFrame.HasText Then
Set otxtr = oshp.TextFrame.TextRange
For i = 1 To otxtr.Paragraphs.Count
Y = otxtr.Paragraphs(i).IndentLevel
If otxtr.Paragraphs(i).ParagraphFormat.Bullet.Visible = True Then
With otxtr.Paragraphs(i).ParagraphFormat.Bullet
.UseTextFont = True
Select Case Y
Case Is = 1, 3
.RelativeSize = 1
.Type = ppBulletUnnumbered
.Character = 8226
Case Is = 2, 4
.RelativeSize = 1
.Type = ppBulletUnnumbered
.Character = 8211
Case Is = 5
.RelativeSize = 1
.Type = ppBulletUnnumbered
.Character = 187
End Select
End With
End If
Next i
End If
End If
Next oshp
Next osld
End Sub

Open in new window

Commented:
Thanks JSRWilson!

I actually just finished figuring out the macro myself.

Here is the code I used.  It looks like your code is very similar, yet I haven't tested it, but I'll give you the credit for it since you went to the trouble answering my question.

Thank you very much!
Sub BulletPointReplacment()
'This macro replaces all bullet points within text frames
'as well as picture frames with the built-in character within
'the macro, throughout the entire presentation.

Dim x As Slide
Dim y, z As Integer

On Error Resume Next
    
For Each x In ActivePresentation.Slides
    x.Select
    For y = 1 To 10
        With x.Shapes(y).TextFrame
            With .TextRange.ParagraphFormat.Bullet
                If .Type = ppBulletNone Or .Visible = True Then
                Else
                    With .Font
                        .Name = "Wingdings"
                        .Color.RGB = RGB(Red:=136, Green:=103, Blue:=36)
                    End With
                    .Character = 157
                    .RelativeSize = 0.75
                End If
            End With
        End With
    Next y
    
    For z = 1 To 10
        ActiveWindow.Selection.SlideRange.Shapes(z).Select
        ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select
        ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select
        With ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Paragraphs.ParagraphFormat.Bullet
            If .Visible = msoTrue Then
                With .Font
                    .Name = "Wingdings"
                    .Color.RGB = RGB(Red:=136, Green:=103, Blue:=36)
                End With
                .Character = 157
                .RelativeSize = 0.75
            Else: End If
        
        End With
    Next z
Next x

Beep

End Sub

Open in new window

Author

Commented:
My code worked for me exactly as I wished, but I haven't tested the accepted solution.  I give credit for going to the trouble of answering it.
John WilsonCEO PowerPoint Alchemy

Commented:
Here's a good rule in PowerPoint vba. Never (well hardly ever) select anything.