据我所知,下面的代码从活动窗口获取一个形状,轻推一下,复制幻灯片并在当前窗口之后粘贴它,然后将粘贴的幻灯片转换为活动窗口,然后再次轻推它:
Sub Test()'获取有效的演示文稿
昏暗的演示作为演讲
设置oPresentation = ActivePresentation
'获取演示文稿中的第一张幻灯片
Dim oSlide As Slide
设置oSlide = oPresentation.Slides(1)
'在幻灯片上获得第一个形状
昏暗的oShape作为形状
设置oShape = oSlide.Shapes(1)
'向右推动形状
oShape.Left = oShape.Left 1
'复制整张幻灯片
oSlide.Copy
'将幻灯片粘贴为位置2的新幻灯片
Dim oNewSlides作为SlideRange
设置oNewSlides = oPresentation.Slides.Paste(2)
'获取我们粘贴的幻灯片的参考
Dim oNewSlide As Slide
设置oNewSlide = oNewSlides(1)
'在新幻灯片上获得第一个形状
Dim oNewShape作为形状
设置oNewShape = oNewSlide.Shapes(1)
'向右推动形状
oNewShape.Left = oNewShape.Left 1
结束子
据我所知,为了实现这个代码,我应该打开一个活动窗口,它应该至少有一个形状 . 在我运行此代码之前,我只有一张幻灯片;代码运行后,我有两张幻灯片:旧版本为1,较新版本为2 .
如果我再次运行此代码,我将得到三张幻灯片:最旧的一个仍为数字1,但最旧的一个是数字2,而不是数字3 .
我的问题是如何让它制作幻灯片,以便新的幻灯片总是具有更大序数的幻灯片,即每个新创建的幻灯片应该是幻灯片预览侧边栏中的最后一个(最低的幻灯片)?
而且,我怎么能把它变成一个循环?因此,我不需要一次又一次地重新运行此代码,而只需使用给定数量的循环迭代进行循环 .
我想,如果它应该是一个循环,那么幻灯片索引应该变成一个变量,但我不知道如何在PowerPoint VBA中这样做 .
1 回答
我不确定你的代码是否有意义 . 它本质上:
获取第一张幻灯片
获取幻灯片上的第一个形状
向右移动1个单位
复制第1张幻灯片
将其粘贴为第二张幻灯片
获取新第二张幻灯片上的第一个形状
向右移动1个单位
它为什么要移动两次,一次放在原件上,一次放在复印件上?
无论回答您的具体问题:
要将其粘贴为最后一张幻灯片,请替换
同
循环使用这样的东西:
这需要最后一张幻灯片,复制它,将副本粘贴为新的最后一张,向右轻推第一张形状,拍摄新的最后一张幻灯片,复制它,将副本粘贴为最后一张,将第一张形状轻推到右边,等等......它会这样做10次 .