Вопрос

Мы пытаемся создать PowerPoint Slide Prontrammathation. Мы можем получить пуль на одном уровне, но игра с вкладками и возвратом линии не работает для вложенных перечислений.

На данный момент мы получаем:

  • текст 1
  • подтекст1.
  • подтекст2.
  • Текст 2.

И что мы хотим:

  • текст 1
    • подтекст1.
    • подтекст2.
  • Текст 2.

Есть ли способ контролировать их с помощью C # или VBA?

Это было полезно?

Решение

Во-первых, получите ссылку на Paragraphs принадлежащий TextRange2, как каждый маркированный предмет - это абзац (действительно TextRange2).

Dim pres As Presentation
Set pres = Application.ActivePresentation

Dim slide As slide
Set slide = pres.Slides(2)

Dim shapes As shapes
Set shapes = slide.shapes

Dim textShape As Shape
Set textShape = shapes(2)

Dim textFrame As TextFrame2
Set textFrame = textShape.TextFrame2

Dim textRng As TextRange2
Set textRng = textFrame.textRange

Dim p As TextRange2
Set p = textRng.Paragraphs

SetIndent 1, p.Item(1)
SetIndent 2, p.Item(2)
SetIndent 2, p.Item(3)
SetIndent 1, p.Item(4)

Последние четыре строки вызывают функцию, которая инкапсулирует логику установки отступа «Уровень», который влияет на стиль пуль и текста, а также фактический отступ пуль и текста:

Private Function SetIndent(ByVal level As Integer, ByRef p As TextRange2)

p.ParagraphFormat.IndentLevel = level
p.ParagraphFormat.FirstLineIndent = 40
p.ParagraphFormat.LeftIndent = level * 40

End Function

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top