Замена некоторого текста в PowerPoint - PullRequest
2 голосов
/ 23 июля 2011

Я использую Microsoft.Office.Interop.PowerPoint, чтобы заменить определенный токен на каждом слайде из презентации * .pptx.

Проблема в том, что в текстовом поле, в котором находится токен, есть строки, отформатированные по-разному (например, строки с другим размером шрифта).

Я на самом деле пытался выполнить замену как

shape.TextFrame.TextRange.Text = strStartText + replacementString + strEndText;

, так и

shape.TextFrame.TextRange.Text = 
    shape.TextFrame.TextRange.Text.Replace(oldString, replacementString);

Но это объединяет и, таким образом, портит все форматированиетекстовое окно.Все строки и слова теперь имеют одинаковый размер / цвет и т. Д.

Есть ли какое-нибудь решение для этого?

1 Ответ

2 голосов
/ 25 июля 2011

Объекты PowerPoint .TextRange имеют метод .Replace, который работает аналогично команде Replace в VB / VBA, но сохраняет форматирование.

Пример, предполагая, что у вас есть ссылка на форму в переменной oSh:

With oSh
    With .TextFrame.TextRange
        .Replace findwhat:=oldString, replacewhat:= replacementString
    End With
End With
...