【发布时间】:2016-06-13 22:04:57
【问题描述】:
我是 VBA 新手,我正在尝试做一些对我来说看起来很简单但很难实现的事情。
上下文:
我有一个包含 20 张幻灯片的 PPT 演示文稿,其中每张幻灯片有 21 个形状,但最后一个。每次我想添加一个新形状时,它都在第一张幻灯片上,因此我必须移动每个形状以便为新形状腾出空间。
我的问题:我发现了如何使用此代码将形状移动到我想要的位置
With ActiveWindow.Selection.ShapeRange
.Left = XXX 'change the number for desired x position
.Top = XXX 'change the number for desired y position
End With
但是,这仅在我选择所述第一个形状时才有效。 因为我有数百个形状,将它们全部命名以移动它们太费时间了。所以我想做的是告诉 VBA 选择那里的形状:
.Left = 50
.Top = 50
然后把它移到那里
.Left = 140
.Top = 50
这看起来很简单,但不知何故我不知道该怎么做。 这个线程接近我想要的,但还不是。
提前谢谢你。
【问题讨论】:
-
我想我明白了。哇,真快。 [code] If .Type = msoAutoShape _ And .Left = 50 _ And .Top = 50 Then .Left = 140 .Top = 50 [/code]
标签: vba excel powerpoint shapes