如何使用C#选择文档中的所有形状。
我目前正在更改word文档的语言设置。
我能够使用select all更改语言,遗憾的是并非所有选择都像页眉/页脚,文本框或文档上的任何形状。我以某种方式管理在页眉/页脚中设置语言。但我找不到设置形状语言的方法。
我试过做一个快速宏,但我不知道文档中每个形状的索引是什么。
这是宏:
ActiveDocument.Shapes("Text Box 4").Select
ActiveDocument.Shapes.Range(Array("Text Box 4", "Rectangle 7")).Select
ActiveDocument.Shapes.Range(Array("Text Box 4", "Rectangle 7", _
"Text Box 10")).Select
ActiveDocument.Shapes.Range(Array("Text Box 4", "Rectangle 7", _
"Text Box 10", "Rectangle 11")).Select
Selection.LanguageID = wdEnglishUK
这就是我在C#中的表现,但它不起作用......
wordApp.ActiveDocument.Shapes.SelectAll();
wordApp.Selection.LanguageID = Word.WdLanguageID.wdEnglishUK;
如果尝试使用此功能:
wordApp.ActiveDocument.Shapes.Range(??).Select; //I don't know what should I put inside the range
wordApp.Selection.LanguageID = Word.WdLanguageID.wdEnglishUK;
我希望有人可以帮助我。或者,如果您有更好的解决方案来更改语言,请告诉我.Tnx
答案 0 :(得分:1)
你有一段时间没有答案,所以这里是VBA,我希望你能转换它。
这个照顾语言变化 对于整个文件,包括 页眉和页脚等 “故事”,文本框以及 形状与文本。
Sub langconvPL()
Dim mystoryrange As Range
For Each mystoryrange In ActiveDocument.StoryRanges
mystoryrange.LanguageID = wdPolish
mystoryrange.NoProofing = False
Next mystoryrange
scount = ActiveDocument.Shapes.Count
For x = 1 To scount
ActiveDocument.Shapes(x).Select
If ActiveDocument.Shapes(x).TextFrame.HasText = True Then
ActiveDocument.Shapes(x).TextFrame.TextRange.Select
Selection.LanguageID = wdPolish
End If
Next x
End Sub