1
我们正在尝试创建一个PowerPoint幻灯片程序。我们可以在单个级别上获得子弹,但是使用制表符和行返回不适用于嵌套枚举。在PowerPoint 2007中创建嵌套的项目符号列表
现在我们得到:
- 文本1
- subtext1
- subtext2
- 文本2
一第二,我们要的是:
- 文本1
- subtext1
- subtext2
- 文本2
有没有办法控制这些使用C#或VBA?
我们正在尝试创建一个PowerPoint幻灯片程序。我们可以在单个级别上获得子弹,但是使用制表符和行返回不适用于嵌套枚举。在PowerPoint 2007中创建嵌套的项目符号列表
现在我们得到:
一第二,我们要的是:
有没有办法控制这些使用C#或VBA?
首先,请参考的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,但你的里程可能会有所不同)。
谢谢,它的作品 – 2010-05-21 19:35:00