Supercharge your PowerPoint productivity with
Supercharge your PPT Productivity with PPTools - Click here to learn more.

Proud member of

PPTools

Image Export converts PowerPoint slides to high-quality images.

PPT2HTML exports HTML even from PowerPoint 2010 and 2013, gives you full control of PowerPoint HTML output, helps meet Section 508 accessibility requirements

Merge Excel data into PowerPoint presentations to create certificates, awards presentations, personalized presentations and more

Resize your presentations quickly and without distortion

Language Selector switches the text in your presentation from one language to another

FixLinks prevents broken links when you distribute PowerPoint presentations

Shape Styles brings styles to PowerPoint. Apply complex formatting with a single click.

Convert key text into underscore characters (ie, make them into Fill In The Blanks)

This macro will locate text that you've set to the "Search" color and replace it with underscore characters, creating an instant "fill-in-the-blanks" test. It will also change the color of the text to the "Replace" color you've specified.

Sub UnderlineKeyText()

Dim oShp As Shape
Dim oSld As Slide
Dim oRng As TextRange
Dim SearchColor As Long
Dim ReplaceColor As Long
Dim x As Long
Dim y As Long

SearchColor = RGB(255, 0, 0)   ' Look for Red text
ReplaceColor = RGB(0, 0, 255) ' Make it pure blue
' Make ReplaceColor the same as SearchColor if you want the
' color of the underlines to end up the same

For Each oSld In ActivePresentation.Slides
    For Each oShp In oSld.Shapes
        If oShp.HasTextFrame Then
            ' It may still not have a text frame - or at least not an accessible one.  PPT lies sometimes.
            ' Then it throws errors if you try to touch the text frame it says the object has.  So:
            On Error Resume Next    ' ignore any errors
            If oShp.TextFrame.HasText Then
                Set oRng = oShp.TextFrame.TextRange
                For x = 1 To oRng.Runs.Count
                    If oRng.Runs(x).Font.Color.RGB = SearchColor Then
                        oRng.Runs(x).Font.Color.RGB = ReplaceColor
                        For y = 1 To oRng.Runs(x).Characters.Count
                            oRng.Runs(x).Characters(y).Text = "_"
                        Next
                        ' remove the font shadow, if any
                        oRng.Runs(x).Font.Shadow = False
                    End If
                Next x
            End If
            On Error GoTo 0   ' start paying attention to errors again
        End If
    Next oShp
Next oSld

End Sub

See How do I use VBA code in PowerPoint? to learn how to use this example code.


Did this solve your problem? If so, please consider supporting the PPT FAQ with a small PayPal donation.
Page copy protected against web site content infringement by Copyscape Contents © 1995 - 2022 Stephen Rindsberg, Rindsberg Photography, Inc. and members of the MS PowerPoint MVP team. You may link to this page but any form of unauthorized reproduction of this page's contents is expressly forbidden.

Supercharge your PPT Productivity with PPTools

content authoring & site maintenance by
Friday, the automatic faq maker (logo)
Friday - The Automatic FAQ Maker

Convert key text into underscore characters (ie, make them into Fill In The Blanks)
http://www.pptfaq.com/FAQ00754_Convert_key_text_into_underscore_characters_-ie-_make_them_into_Fill_In_The_Blanks-.htm
Last update 07 June, 2011
Created: