Replace Fonts Not Working

A

Anemone

Two-part question: 1) I'm sure it's pilot error, but I can't seem to do a
global replace with Arial for Calibri, nor with an unidentifiable double-byte
font with Arial Unicode (intent being to minimize the impact of the
double-byte). And 2) hope against hope, has Microsoft by any chance offered a
simpler way to remove double-byte fonts in Office 2007 (they plagued me in
2003)? They're not exactly hurting my presentation(s), but they're causing a
*lot* of file bloat. Thanks.
 
A

Anemone

Oh, well ... sometimes there's just no easy way. The document came from the
client, so I have no idea how many hands it had seen before arriving on my
desktop. Thanks for your input, Steve. (By the way, the font's are not
embedded according to the save option checkbox, which is blank.)
 
M

mbwager

Many people have this same problem -- you try to save your PowerPoint
presentation with embedded fonts and it errors. Or, when trying to
use the REPLACE FONTS feature, but you can't replace UNICODE fonts.
(Example: cannot replace ARIAL UNICODE MS font.)

Here is a simple macro I wrote that will allow you to change the FONTS
to another font. It changes only the selected font and does not
affect any other font characteristics.

To use: Create a new PowerPoint macro and paste in the following
code. Then run the macro.

*******************************************************

[COPY THE MACRO CODE BELOW]
'-------------------------------------------------------------------------------
Sub Replace_UNICODE_Fonts()
'Written by Mark Wager -- This macro will replace a user-selected font
with a font of
'your choice. It will affect only the selected font on the selected
slide(s)
'(use single slide view or "Slide Sorter" view)

' Macro written 5/12/2009 by Mark Wager
'
' ---------------------------------------
' Ask User for the problem font and what to change it to
' ---------------------------------------
problemFont = InputBox("Enter the name of the FONT you wish to
replace", "Font to Replace", "Arial Unicode MS")
If problemFont = "" Then End
theNewFont = InputBox("Enter the new FONT name.", "New Font",
"Arial")
If theNewFont = "" Then theNewFont = "Arial"

' ---------------------------------------
' begins at 1st selected slide and loops through all selected
slides
' ---------------------------------------
For Each Slide In ActiveWindow.Selection.SlideRange

' For each text box and shape on the slide...
For Each shp In Slide.Shapes
' If a text box or shape has text in it...
If shp.HasTextFrame Then
Set txtRng = shp.TextFrame.TextRange
'Now, sift through all characters on the slide
For i = 1 To txtRng.Characters.Count
' Only change the user-selected font, leave rest
alone
If txtRng.Characters(i, 1).Font.Name = problemFont
Then
txtRng.Characters(i, 1).Font.Name = theNewFont
End If
Next i
End If
Next
Next Slide
End Sub
'-------------------------------------------------------------------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top