在PowerPoint 2007中创建嵌套子弹列表
-
03-10-2019 - |
题
我们正在尝试创建PowerPoint幻灯片编程。我们可以在一个级别上获得子弹,但是使用标签和线路返回对嵌套枚举不起作用。
现在我们得到:
- 文本1
- subtext1
- subtext2
- 文字2
我们想要的是:
- 文本1
- subtext1
- subtext2
- 文字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,但您的里程可能会有所不同)。
不隶属于 StackOverflow