如何使用vba通过按钮更改当前PowerPoint幻灯片上的文本框?

时间:2019-03-22 13:10:13

标签: vba textbox powerpoint

我是vba的新手,需要帮助。 我正在尝试为我正在处理的PowerPoint演示文稿创建一个模块。在演示文稿中,我的一些幻灯片包含两个文本框,这些文本框显示了两个不同团队的得分以及两个为每个团队得分的按钮。该模块应该在按下相应按钮以显示团队的新分数时更改文本框的文本。给出分数之后,演示将继续进行,直到下一张带有按钮和文本框的幻灯片,其中应显示他的当前分数。

目前我的代码有几个问题,但是我想帮助两个人,我该如何在特定幻灯片上引用文本框。 我知道,如果幻灯片11是当前幻灯片,则“ name = ActivePresentation.SlideShowWindow.View.Slide.Name”会产生一个类似于“ name = "Slide11”的字符串,而且我也知道“ Slide11.TextBoxTeam1.Text = "Hello World”“将团队的文本设置为文本框为“ Hello world”。但是“ name.TextBoxTeam1.Text = "Hello World"”不起作用。我确定它只是关于语法,但我似乎无法弄清楚。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果我没看错代码,name是一个字符串变量,其值等于Slide11的名称。无论字符串的值是否为幻灯片的名称,您都无法通过String数据类型访问Slide11的属性。如果Slide11.TextBoxTeam1.Text = "Hello World"有效,并且您想用引用该幻灯片的变量替换Slide11,则需要一个幻灯片对象变量。

Dim name As String
name = ActivePresentation.SlideShowWindow.View.Slide.name

Dim mySlide As Slide
Set mySlide = ActivePresentation.Slides(name)

mySlide.Shapes("TextBoxTeam1").TextFrame.TextRange.Text = "Hello World"

请注意,mySlide.TextBoxTeam1.Text = "Hello World"对我不起作用,而这是mySlide.Shapes("TextBoxTeam1").TextFrame.TextRange.Text = "Hello World",所以我在代码中替换了该行。