2012-02-11 55 views
1

我剛剛遇到了SectionProperties.AddSection的錯誤行爲。比方說,我已經創建了四個部分:SectionProperties.AddSection工作不正常 - 錯誤?

1. Default 
2. Overview 
3. Details 
4. Conclusions 

現在我叫代碼:

Presentation.SectionProperties.AddSection(3, "Overview details"); 

根據文檔:SectionProperties.AddSection Method (PowerPoint)概要細節部分前應詳細信息部分創建。

而不是讓

1. Default 
2. Overview 
3. Overview Details 
4. Details 
5. Conclusions 

我結束了但是:

1. Default 
2. Overview details 
3. Overview 
4. Details 
5. Conclusions 

它是一個常見的問題?我做了一些測試,似乎只有在開始或結束插入新節時插入新節才能正常工作。

感謝, 帕維爾

+0

我甚至發現行爲異常。在一篇演講中,在sectino 3中有一張幻燈片,在前兩節中沒有幻燈片,添加一個新節會導致在演示開始時添加節,即索引1,無論我指定的索引如何,除非它是4 (即比現有部分的數量多一個,在這種情況下,它是在演示結束時添加的)。如果您希望它能夠工作,您似乎至少需要在現有部分之前和之後插入新部分的幻燈片。越野車的確如此。 – 2012-02-11 17:35:45

回答

2

看到你在MS答案後,以及在之間,有一點更多的時間玩這個。這確實是越野車,但有一個解決方法。當某些部分沒有幻燈片時會出現問題;所以我們將幻燈片添加到任何沒有它們的部分,根據需要添加部分,然後刪除剛剛添加的「虛擬」幻燈片。

Sub TestAddSection() 
    Dim x As Long 
    Dim oSl As Slide 

    ' Add a dummy slide to each empty section and tag it 
    For x = 1 To ActivePresentation.SectionProperties.Count 
     Debug.Print ActivePresentation.SectionProperties.Name(x) 
     If ActivePresentation.SectionProperties.SlidesCount(x) = 0 Then 
      ' activepresentation.SectionProperties. 
      Set oSl = ActivePresentation.Slides.AddSlide(1, ActivePresentation.Designs(1).SlideMaster.CustomLayouts(1)) 
      oSl.Tags.Add "DUMMY", "YES" 
      oSl.MoveToSectionStart (x) 
     End If 
    Next 

    ' add new section 
    ActivePresentation.SectionProperties.AddSection 3, "NEW GUY" 

    ' And delete the dummy slides 
    With ActivePresentation 
     For x = .Slides.Count To 1 Step -1 
      If .Slides(x).Tags("DUMMY") = "YES" Then 
       .Slides(x).Delete 
      End If 
     Next 
    End With 
End Sub 

我在索引1中添加幻燈片,然後將它們移動到需要它們的部分的開始位置。也許有辦法直接將它們添加到該部分,但我找不到它。