为ppt文本框中的每个段落自动创建组合框

时间:2011-08-02 14:06:37

标签: combobox excel-vba powerpoint-vba vba excel

我是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 :(得分:0)

我不清楚您发布的代码与添加组合框有什么关系,但这里有一个如何添加组合框并向其中添加项目的示例:

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