2016-05-25 4 views
0

Я хочу добавить элементы списка на один слайд. Мой код выглядит так:Добавить элементы списка в слайд

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 

Моя проблема в том, что будет отображаться только последний элемент списка. кажется, что другие элементы перезаписаны.

ответ

0

Я думаю, что это проблема:

.Text = vbNewLine & title 

Каждый раз через петлю, вы устанавливаете .text к текущему значению заголовка, не прилагая текущее значение заголовка к существующему тексту.

Изменить его

.Text = .Text & vbNewLine & title 
+0

Спасибо, это решить мою проблему. – guguli

Смежные вопросы