Выберите все фигуры в автоматизации слов с помощью C sharp - PullRequest
0 голосов
/ 17 декабря 2010

Как выбрать все фигуры в документе с помощью 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

1 Ответ

1 голос
/ 17 декабря 2010

У вас не было ответа в течение некоторого времени, так что вот 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

От: http://www.proz.com/forum/office_applications/31516-how_to_change_textbox_language_in_a_word_document.html

...