如何通过 C# 以编程方式禁用 PowerPoint 中的拼写检查

问题描述 投票:0回答:1

我想从我的 C# VSTO 程序禁用 PowerPoint 幻灯片上的拼写检查。

我的程序有这行代码:

shape.TextFrame2.TextRange.LanguageID = MsoLanguageID.msoLanguageIDNoProofing;

执行这行代码不会抛出错误,但.LanguageID不会改变。 我已经尝试过 msoLanguageIDNone (值 0)和 msoLanguageIDMixed (值 -2),但它们抛出超出范围的异常。

如果我尝试在 VBA 中复制它,我也会遇到同样的问题。

c# vba powerpoint vsto
1个回答
0
投票

更新:当我在 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 对我没有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.