Создавайте комбинированные списки автоматически для каждого абзаца в текстовом поле ppt - PullRequest
0 голосов
/ 02 августа 2011

Я новичок в VBa и недавно столкнулся со следующей проблемой: я копирую данные (строки) из листа Excel в PowerPoint, и я хочу создать комбинированный список для каждой строки (то есть для каждой строки в Excel), которую я копирую. Все, что я мог найти, это как вручную вставить комбинированные списки через меню в Powerpoint, но я хочу избежать необходимости добавлять так много вручную. Есть ли способ добавить комбинированные списки через код VBA?

Here is some of the code I use:

'Loop through each worksheet
 For Each objSheet In ActiveWorkbook.Worksheets

'Create new slide for the data
Set pptSld = pptPre.Slides.Add(Index:=pptPre.Slides.count + 1, Layout:=ppLayoutText)

'Paste the data to the text box of each slide
objSheet.UsedRange.Copy
pptSld.Shapes(2).TextFrame.TextRange.Paste

'Formatting the text box 2
pptSld.Shapes(2).TextFrame.TextRange.ParagraphFormat.Bullet = msoTrue
pptSld.Shapes(2).TextFrame.TextRange.ParagraphFormat.Bullet.RelativeSize = 1
pptSld.Shapes(2).TextFrame.TextRange.Font.Size = 16

    Next objSheet

Как продолжить? Хотите определить поле со списком для каждой строки листа

1 Ответ

0 голосов
/ 03 августа 2011

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

Dim oSh As Shape
Dim oSl As Slide
Set oSl = ActivePresentation.Slides(1)

Set oSh = oSl.Shapes.AddOLEObject(Left:=168, Top:=24, Width:=192, Height:=24, ClassName:="Forms.ComboBox.1", Link:=msoFalse)
With oSh.OLEFormat.Object
    .AddItem ("This")
    .AddItem ("That")
    .AddItem ("The Other")
End With
...