Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Разгруппировка объектов в Word


Автор: IamI 16.11.2011, 14:56
Доброго времени суток!
Имеется документ Word. На его страницах в колонтитуле расположены некоторые объекты - линии, надписи, которые сгруппированы между собой. Необходимо провести поиск и замену по шаблону.
Имеется код:
Код

private void Replace(Document oDoc, string toFind, string toReplace, )
        {
            foreach (Range rngStory in oDoc.StoryRanges)
            {
                SearchAndReplaceInStory(rngStory, toFind, toReplace);

                switch (rngStory.StoryType)
                {
                    case WdStoryType.wdFirstPageFooterStory:
                    case WdStoryType.wdFirstPageHeaderStory:
                    case WdStoryType.wdMainTextStory:
                    case WdStoryType.wdPrimaryFooterStory:
                    case WdStoryType.wdPrimaryHeaderStory:
                    case WdStoryType.wdTextFrameStory:

                        if (rngStory.ShapeRange.Count > 0)
                        {
                            foreach (Shape shp in rngStory.ShapeRange)
                            {
                                if (Convert.ToBoolean(shp.TextFrame.HasText))
                                {
                                    SearchAndReplaceInStory(shp.TextFrame.TextRange, toFind, toReplace);
                                }
                            }
                        }
                        break;
                }
            }
        }
private void SearchAndReplaceInStory(Range rngStory,string strSearch,string pReplaceTxt)
        {
            object toFindTxt = strSearch;
            object toReplaceTxt = pReplaceTxt;
            object matchCase = false;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundsLike = false;
            object nmatchAllWordForms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;
            object MatchDiacritics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object replace = WdReplace.wdReplaceAll;
            object wrap = WdFindWrap.wdFindContinue;
            
            rngStory.Find.ClearFormatting();
            rngStory.Find.Replacement.ClearFormatting();

            rngStory.Find.Execute(
                                ref toFindTxt, ref matchCase, ref matchWholeWord, ref matchWildCards, ref matchSoundsLike,
                                ref nmatchAllWordForms, ref forward, ref wrap, ref format, ref toReplaceTxt, ref replace,
                                ref matchKashida, ref MatchDiacritics, ref matchAlefHamza, ref matchControl
                                    );
    
        }


При помощи данного кода производится поиск и замена текста. Все работает корректно, кроме сгруппированных объектов. При попытке добавить метод Ungroup выдается ошибка - отказано в доступе, ну или весь сгруппированный текст удаляется. 
Прошу помочь. Заранее большое спасибо)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)