Vba 将PPT字体设置为';车身';类型
我无法粘贴全部代码,但关键是我在PPT 2013中有一个文本框,myTb,我已经(以编程方式)粘贴了一些文本。我现在要执行以下两个操作:Vba 将PPT字体设置为';车身';类型,vba,fonts,powerpoint,powerpoint-2013,Vba,Fonts,Powerpoint,Powerpoint 2013,我无法粘贴全部代码,但关键是我在PPT 2013中有一个文本框,myTb,我已经(以编程方式)粘贴了一些文本。我现在要执行以下两个操作: 查看原始文本是否为PPT“body default”字体(例如MS功能区中的“Calibri(body)”与“Calibri”) 如果是正文默认值,则将新文本也设置为正文默认值 我似乎无法理解这两个部分,即使我已经尝试了从/到大多数Shape.TextFrame[n].TextRange.Font.Name…字段的读/写操作。关于Shape.TextFrame
要将字体设置为正文或标题字体,需要使用一些奇怪的语法: {object}.Font.Name=“+”+FontType+“-”+FontLang 其中: FontType是“mj”或“mn”,分别表示大调(标题)或小调(正文) FontLang是“lt”、“cs”或“ea”,表示拉丁语、复杂文字或东亚语 例如,要将字体设置为主题的正文字体,请执行以下操作:
ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Font.Name = "+mn-lt"
要将字体设置为正文或标题字体,需要使用一些奇怪的语法: {object}.Font.Name=“+”+FontType+“-”+FontLang 其中: FontType是“mj”或“mn”,分别表示大调(标题)或小调(正文) FontLang是“lt”、“cs”或“ea”,表示拉丁语、复杂文字或东亚语 例如,要将字体设置为主题的正文字体,请执行以下操作:
ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Font.Name = "+mn-lt"
晚会有点晚了,但我发现了这个,以防有人需要 编辑:这是C代码,使用Interop PowerPoint名称空间
string headingsThemeFont = Globals.ThisAddIn.Application.ActivePresentation.SlideMaster.Theme.ThemeFontScheme.MajorFont.Item(MsoFontLanguageIndex.msoThemeLatin).Name;
string bodyThemeFont = Globals.ThisAddIn.Application.ActivePresentation.SlideMaster.Theme.ThemeFontScheme.MinorFont.Item(MsoFontLanguageIndex.msoThemeLatin).Name;
晚会有点晚了,但我发现了这个,以防有人需要 编辑:这是C代码,使用Interop PowerPoint名称空间
string headingsThemeFont = Globals.ThisAddIn.Application.ActivePresentation.SlideMaster.Theme.ThemeFontScheme.MajorFont.Item(MsoFontLanguageIndex.msoThemeLatin).Name;
string bodyThemeFont = Globals.ThisAddIn.Application.ActivePresentation.SlideMaster.Theme.ThemeFontScheme.MinorFont.Item(MsoFontLanguageIndex.msoThemeLatin).Name;
但是这个Font.Name字符串如何确定“Calibri”和“Calibri(body)”之间的区别?正如我上面所描述的,这两种字体类型在这个字符串中都显示为“mn”,尽管它们彼此明显不同。我认为我们需要更详细地描述您在原始帖子中描述的更改。通过代码或手动或任何一种方式,具体如何?我知道这是旧的,但上面的工作为我。我想将字体设置为Georgia,这是我选择的PowerPoint主题。如果我做了Font.Name=“Georgia”,那么它会将此硬编码为字体。但是,使用上面的设置,将其设置为所需的正文字体。Thanks@Dean我参加聚会也迟到了。但如果有帮助的话,PPT有一些主题,包括字体、颜色和其他一些方面的规格。您可以将这些视为查找表。指定主题字体(即标题或正文)告诉PPT“转到字体主题表,查找正文字体的名称,使用该字体”。当您更改字体主题时,任何被指定为正文或标题主题字体的字体都将相应更改。当您告诉PPT“将此文本变为佐治亚”时,字体不再连接到主题,即使主题发生变化,字体仍保持佐治亚。每个都有它的用途。这个Font.Name字符串如何确定“Calibri”和“Calibri(body)”之间的区别?正如我上面所描述的,这两种字体类型在这个字符串中都显示为“mn”,尽管它们彼此明显不同。我认为我们需要更详细地描述您在原始帖子中描述的更改。通过代码或手动或任何一种方式,具体如何?我知道这是旧的,但上面的工作为我。我想将字体设置为Georgia,这是我选择的PowerPoint主题。如果我做了Font.Name=“Georgia”,那么它会将此硬编码为字体。但是,使用上面的设置,将其设置为所需的正文字体。Thanks@Dean我参加聚会也迟到了。但如果有帮助的话,PPT有一些主题,包括字体、颜色和其他一些方面的规格。您可以将这些视为查找表。指定主题字体(即标题或正文)告诉PPT“转到字体主题表,查找正文字体的名称,使用该字体”。当您更改字体主题时,任何被指定为正文或标题主题字体的字体都将相应更改。当您告诉PPT“将此文本变为佐治亚”时,字体不再连接到主题,即使主题发生变化,字体仍保持佐治亚。每个都有它的用途。由于此线程标记为“VBA”,您的答案并不完全合适,但它无疑对希望在(我猜)VBA.NET中解决问题的人有用。请编辑您的评论,指出这是{whatever.language}的解决方案。您是对的,史蒂夫,谢谢您指出这一点。我已经编辑了我的答案。由于此线程标记为“VBA”,您的答案并不完全合适,但它无疑对希望在(我猜)VBA.NET中解决问题的人有用。请编辑您的评论,指出这是{whatever.language}的解决方案。您是对的,史蒂夫,谢谢您指出这一点。我已经编辑了我的答案。