2010-05-19 83 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