如何检测(并更改)在Excel和PowerPoint中的图表中使用的字体是否将遵循样式或由用户指定?

当图表从Excel复制到PowerPoint时,如果轴上的字体由于在Excel中应用的样式或主题而发生更改,那么它们通常会更改为与PowerPoint中应用的任何主题(这是好的)保持一致。 但是,当字体(通常可能是格式化)已被用户覆盖时,用户指定的字体是使用的字体。

编写代码来检测默认字体是什么,并应用它可能不是那么棘手,但我宁愿应用主题字体的方式,将匹配后续主题的变化。 谁能告诉我如何做到这一点?

我正在使用C#,但熟悉VBA和对象模型或多或less都是相同的,所以两种语言的方法应该没问题。

经过多一点挖掘,设置任何字体的主题字体看起来可以通过使用特殊的字体名称组成:

  • 标题或正文字体分别为+mj+mn
  • -lt-ea-cs表示拉丁语,东亚语或复杂脚本字体

因此,对于我的目的,如果我只是指定所有标题形状的字体属性有font.name = "+mn-lt"那么我完成我所需要的,即字体将匹配的主题,并反映后来的主题变化。

注意,检测这是否已经是这种情况,因为可以使用特殊的字体名称或实际的字体名称分配字体,这是一个难题( 在SO的其他地方提到)。 谢天谢地,我不必太担心这个…