我无法更改(即“替换”)我继承的演示文稿中使用的两种字体,这些字体给我们的用户带来了麻烦。
我已将演示文稿设置为嵌入字体,但是由于我没有问题,我无法像平常那样修复它(即,通常要使用问题字体并打开文件然后再次关闭它嵌入字体,就没有其他问题了。)
在这种情况下,有问题的字体称为“ Times”(不是“ Times New Roman”,只是“ Times”),我相信这是一种古老的PostScript字体,如果我没记错的话,这将是一个问题因为据我了解,PowerPoint不支持PostScript字体。
无论如何,我想用“ Arial”替换字体,我知道通常可以通过Replace> Replace Font轻松实现。 。 。但是,由于某种原因,该文件并没有使用。我将告诉PowerPoint替换它,它似乎已执行某些操作,然后单击。 。 。没有变化。
SO。 。 。我前往Google,尝试了一些方法(PPTools可能提到的一个方法是将文件转换为HTML,然后再转换为HTML,据说可以修复(即“删除”)演示文稿中的某些亚洲字体和其他不受支持的字体。但是我无法无法弄清楚如何在O365脱机版(PowerPoint 2019)中将演示文稿另存为网页,这是行不通的(似乎找不到``另存为''或``导出''HTML或Web的选项Page,按照建议,因此我开始寻找VBA。
我的第一次尝试是这样,因为我发现它最初是用来将“远东字体”更改为“ Arial”的:
Sub ChgFarEastFontsToArial()
Dim oSh As Shape
Dim oSl As Slide
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
If oSh.HasTextFrame Then
oSh.TextFrame.TextRange.Font.NameFarEast = "Arial"
End If
Next
Next
For Each oSh In ActivePresentation.SlideMaster.Shapes
If oSh.HasTextFrame Then
oSh.TextFrame.TextRange.Font.NameFarEast = "Arial"
End If
Next
If ActivePresentation.HasTitleMaster Then
For Each oSh In ActivePresentation.TitleMaster.Shapes
If oSh.HasTextFrame Then
oSh.TextFrame.TextRange.Font.NameFarEast = "Arial"
End If
Next
End If
End Sub
当我不进行任何更改时,它运行没有错误,但是由于我实际上并不想更改远东字体,因此它对我没有帮助。
我的下一个尝试是这样
Sub ReplaceFontToArial()
Dim objSingleWord As Range
Dim objDoc As Presentation
Set objDoc = ActivePresentation
With objDoc
For Each objSingleWord In .Words
If objSingleWord.Font.Name = "Times" Then
objSingleWord.Font.Name = "Arial"
End If
Next
End With
End Sub
但是,它会错误地突出显示ObjSingleWord As Range
和声明Compile error: User-defined type not defined
。
然后,根据Microsoft VBA参考文档的建议,我尝试了:
Sub ReplaceFontToArial()
With Application.ActivePresentation
.Fonts.Replace Original:="Times", Replacement:="Arial"
End With
End Sub
但是错误出现在Run-time error '424': Object required
上。
我正要解决这个问题。关于如何更改这种疯狂字体的任何想法都将是惊人的! (此外,关于我的上述脚本为何不起作用的建议也将有所帮助。)
仅供参考,如果有帮助,将不会替换的字体为:
Times Unsupported font file format (AAT)
,Times Bold Unsupported font file format (AAT)
,Times Italic Unsupported font file format (AAT)
,Times Bold Italic Unsupported font file format (AAT)
和Noto Sans Symbols。
答案 0 :(得分:2)
Times是Mac字体(AAT是Apple Advanced Typography)。对于顽固的字体,我的首选技术是将文件结尾更改为.zip,将文件解压缩为OOXML,然后使用文本编辑器(如NotePad ++)对所有文件进行查找和替换。
查找:typeface =“ Times” 替换:typeface =“ Arial”
然后重新压缩并重新命名为.pptx。制作该文件的副本以进行实验。此方法在更改PowerPoint语言设置时也非常有用。