自动适合Word文档中的形状

时间:2019-07-12 05:15:03

标签: c# vba ms-word vsto

如何使用C#或vba在Word文档中自动填充<Link to="/test"> click </ Link> // renders <a href="/app-react/test"> (Word 2013)。

我尝试使用Shape属性,但是它不起作用。在Excel中,它可以工作,但在字面上,它会引发错误

  

“指定的值超出范围。”

shape.Textframe.autosize

上面的代码没有任何作用。

shape.TextFrame.AutoSize = (int)Microsoft.Office.Core.MsoAutoSize.msoAutoSizeShapeToFitText;

上面的代码引发了一个异常

shape.TextFrame2.AutoSize = Microsoft.Office.Core.MsoAutoSize.msoAutoSizeShapeToFitText;

我需要在Word文件中自动将Shape调整为适合其中的文本。

1 个答案:

答案 0 :(得分:1)

该代码在Word中不能与Excel或PowerPoint一起使用的原因是Word的对象模型不支持TextFrame2的属性。 (最近在Word 365中进行了测试。)它仅支持TextFrameAutoSize的{​​{1}}仅支持True / False,不支持TextFrame枚举。

MsoAutoSize的文档:https://docs.microsoft.com/en-us/office/vba/api/excel.textframe.autosize

TextFrame.AutoSize的文档:https://docs.microsoft.com/en-us/office/vba/api/excel.textframe2.autosize

请注意,它们都适用于Excel(截至该日期,当前为365,这意味着晚于Office 2013)。对于Word,没有TextFrame2.AutoSize文档。 Word的对象模型将其接受为TextFrame2对象的属性,但是如果代码尝试使用Shape的任何属性或方法,则会导致错误。例如,不可能使用TextFrame2

对于C#:请记住,True的等效值为-1(而不是1)。 False始终为0。