C# 在Word文档中自动调整形状

C# 在Word文档中自动调整形状,c#,vba,ms-word,vsto,C#,Vba,Ms Word,Vsto,如何使用C#或vba(Word 2013)在Word文档中自动调整形状 我尝试过使用shape.Textframe.autosize属性,但它不起作用。在Excel中它可以工作,但在word中它会抛出错误 “指定的值超出范围。” 上面的代码没有任何作用 shape.TextFrame2.AutoSize = Microsoft.Office.Core.MsoAutoSize.msoAutoSizeShapeToFitText; 上面的代码引发 "The specified value is o

如何使用C#或vba(Word 2013)在Word文档中自动调整
形状

我尝试过使用
shape.Textframe.autosize
属性,但它不起作用。在Excel中它可以工作,但在word中它会抛出错误

“指定的值超出范围。”

上面的代码没有任何作用

shape.TextFrame2.AutoSize = Microsoft.Office.Core.MsoAutoSize.msoAutoSizeShapeToFitText;
上面的代码引发

"The specified value is out of range."

我需要在Word文件中自动调整形状以适应其中的文本。

Word中的代码与Excel或PowerPoint中的代码不一样的原因是Word的对象模型不支持
TextFrame2
的属性。(最近在Word 365中测试过)它只支持
TextFrame
。而
TextFrame
AutoSize
只支持True/False,而不支持
MsoAutoSize
枚举

TextFrame.AutoSize的文档:

TextFrame2.自动调整大小的文档:

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

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

"The specified value is out of range."