2014-02-05 2 views
0

Кто-нибудь знает способ получить текст по умолчанию в PowerPoint по умолчанию?C# PowerPoint Interop: Получить текст по умолчанию для текстового поля-заполнителя

Я определил текстовую форму заполнителя в главном тексте по умолчанию («Введите текст здесь ...»). Placeholder default text

Текст может быть перезаписан на слайде презентации. Placeholder set text

Я хочу получить текст «Введите текст здесь ...» по коду !!! Может кто-то помочь.

ответ

0

Вот VBA, чтобы выполнить эту работу. Перевод на английский язык оставлен в качестве упражнения для проницательного читателя:

Dim osh As Shape 
Dim oSl As Slide 
Dim oLyt As CustomLayout 
Dim x As Long ' VBA Long, not a .NET Long! 

' for demo purposes, we'll work with a placeholder shape 
' that I've selected 
Set osh = ActiveWindow.Selection.ShapeRange(1) 
' and in Real Life, you'd want to ensure that the 
' shape really is a placeholder of the correct type 

Set oSl = osh.Parent 
Set oLyt = oSl.CustomLayout 

For x = 1 To oLyt.Shapes.Count 
    If oLyt.Shapes(x).PlaceholderFormat.Type = osh.PlaceholderFormat.Type Then 
     Debug.Print oLyt.Shapes(x).TextFrame.TextRange.Text 
    End If 
Next 

Это не идеальный вариант; он просто приведет вас к первому заполнителю на макете, который имеет тот же тип заполнителя, что и форма, с которой вы работаете. У вас может быть несколько заполнителей на одном слайде и соответствующем макете, и в этом случае это может привести к неправильным результатам. Если вы хотите защититься от этого, вы можете проверить, есть ли другие заполнители одного и того же типа на родительском слайде, и если это N-го заполнителя, определите значение для N, а затем найдите N-й сопоставитель для компоновки.

+0

Спасибо за ваш андерсер. К несчастью, это противоположное направление, в котором я нуждаюсь. Моя цель состояла в том, чтобы получить ссылку от заполнителя в макете в текстовое поле соответствующего заполнителя на слайде. Потому что нет «родного пути», моя идея состояла в том, чтобы получить его по умолчанию по умолчанию. Но это тоже невозможно. Не могу понять, почему Microsoft не предлагает никаких возможностей для получения ссылки между компоновщиком макета и текстовым полем на слайде. :-( – Tobias

+0

Такая же общая стратегия будет работать для этого. Но позвольте мне спросить, какова цель. –

+0

У меня есть макет с заполнителями, определенными в главном, и вам нужно соответствующее текстовое поле слайда на основе макета, потому что я должен подтвердите это. – Tobias

Смежные вопросы