2016-05-25 26 views
0

Ich möchte die Elemente einer Liste zu einer Folie hinzufügen. Mein Code sieht so aus:Hinzufügen von Elementen einer Liste zu einer Folie

Sub Inhaltsverzeichnis_generator() 
Set titels = New Dictionary 
Set slideNr = New Collection 
Dim sld As Slide 
Dim inhaltsverzeichnis_Slide As Slide 
Dim inhaltsverzeichnis_Shape_Titel As Shape 
Dim inhaltsverzeichnis_Shape_Text As Shape 
Set inhaltsverzeichnis_Slide = Application.ActivePresentation.Slides.Add(2, ppLayoutText) 

Set inhaltsverzeichnis_Shape_Titel = inhaltsverzeichnis_Slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 30, 650, 140) 
With inhaltsverzeichnis_Shape_Titel.TextFrame.TextRange 
    .Font.Name = "Arial" 
    .Font.Size = 35 
    .Text = "Introduction" 
    .Lines.ParagraphFormat.SpaceWithin = 1.5 
End With 

For Each sld In ActivePresentation.Slides 
    If sld.Shapes.HasTitle Then 
     'Debug.Print sld.SlideIndex & ": " & sld.Shapes.Title.TextFrame.TextRange 
     titels.Add (sld.Shapes.title.TextFrame.TextRange.Text) 
     slideNr.Add (sld.SlideIndex) 
    End If 
Next 
Set inhaltsverzeichnis_Shape_Text = inhaltsverzeichnis_Slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 110, 650, 140) 
For Each title In titels 
    With inhaltsverzeichnis_Shape_Text.TextFrame.TextRange 
     .Font.Name = "Arial" 
     .Font.Size = 10 
     .Text = vbNewLine & title 
    End With 
Next 
End Sub 

Mein Problem ist, dass nur das letzte Element der Liste angezeigt wird. Es scheint, als ob andere Elemente überschrieben werden.

Antwort

0

Ich denke, das ist das Problem:

.Text = vbNewLine & title 

Jedes Mal durch die Schleife, sind Sie .Text auf den aktuellen Wert des Titels, nicht anhängt den aktuellen Wert des Eigentums an den vorhandenen Text zu setzen.

ändern es zu

.Text = .Text & vbNewLine & title 
+0

Dank hat es mein Problem gelöst. – guguli

Verwandte Themen