我想从我的 C# VSTO 程序禁用 PowerPoint 幻灯片上的拼写检查。
我的程序有这行代码:
shape.TextFrame2.TextRange.LanguageID = MsoLanguageID.msoLanguageIDNoProofing;
执行这行代码不会抛出错误,但.LanguageID不会改变。 我已经尝试过 msoLanguageIDNone (值 0)和 msoLanguageIDMixed (值 -2),但它们抛出超出范围的异常。
如果我尝试在 VBA 中复制它,我也会遇到同样的问题。
更新:当我在 PowerPoint 中将形状设置为“无校对”并查看 xml 时,LanguageID 未更新是有意义的。这是为文本范围生成的 xml:
<p:txBody>
<a:bodyPr/>
<a:lstStyle/>
<a:p>
<a:r>
<a:rPr lang="nl-NL" noProof="1"/>
<a:t>ABCDE</a:t>
</a:r>
</a:p>
</p:txBody>
有一个单独的 noProof 属性,但我还没有能够在对象模型中找到相应的属性。另外,在 VBA 调试器中检查 TextRange 对我没有帮助。