2010-05-19 47 views
1

我们正在尝试创建一个PowerPoint幻灯片程序。我们可以在单个级别上获得子弹,但是使用制表符和行返回不适用于嵌套枚举。在PowerPoint 2007中创建嵌套的项目符号列表

现在我们得到:

  • 文本1
  •         subtext1
  •         subtext2
  • 文本2

一第二,我们要的是:

  • 文本1
    • subtext1
    • subtext2
  • 文本2

有没有办法控制这些使用C#或VBA?

回答

3

首先,请参考的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,但你的里程可能会有所不同)。

+0

谢谢,它的作品 – 2010-05-21 19:35:00