Frage

Wir versuchen programmaticaly eine Powerpoint-Folie zu erstellen. Wir können Kugeln auf einer einzigen Ebene erhalten, aber mit Tabulatoren und Zeilenumbrüchen spielen funktioniert nicht für verschachtelte Aufzählungen.

Für uns jetzt bekommen:

  • Text 1
  • subtext1
  • subtext2
  • Text 2

Und was wir wollen, ist:

  • Text 1
    • subtext1
    • subtext2
  • Text 2

Gibt es eine Möglichkeit, diese mit C # oder VBA zu kontrollieren?

War es hilfreich?

Lösung

Zunächst erhält einen Verweis auf die Paragraphs der TextRange2, da jedes Aufzählungszeichen ist ein Absatz (wirklich ein 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)

Die letzten vier Zeilen rufen eine Funktion, die die Logik der Einstellung der indent „Ebene“, kapselt, die den Stil der Aufzählungszeichen und Text betrifft, und die tatsächlichen Einzug der Kugeln und Text:

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

Sie könnten sicherlich diese Refactoring Ihre Bedürfnisse zu erfüllen -. Wie den Einzug Faktor vorbei (ich es als 40 fest einprogrammiert, aber die Leistung kann variieren)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top