我有一些旧代码,我打算将其用于更广泛的用途,而不是先前的特定用途。我有一个Powerpoint,我想将特定的图像文件粘贴到其中,创建一个新的幻灯片,然后重复直到A列中的所有变量名都完成。它在特定的文件位置中找到图像名称,并根据变量名值的左侧,变量名值(A列)和变量名值的右侧来构建图像名。例如(“设备”“ 23”“用于通用产品线”)。
找到此图像名称后,它将获取该图像并将其插入到幻灯片上,将其调整大小并放置在左侧,然后找到另一个比较图像,将其放置在同一张幻灯片上并调整大小并将其放置在右侧。由于某些原因,调整大小和定位不再起作用。由于某种原因,似乎图像没有被视为形状。我认为第一个图像是来自先前实验的shape(2),因为幻灯片上有一些剪贴画可算作形状。出于相同的原因,我当时认为shape(3)是图像2。附带的代码是宏。有没有人看到它会在此时失败的原因?
spread
答案 0 :(得分:1)
假设您想要的形状是幻灯片上的第n个形状不是一个好主意,并且就您而言,没有必要这样做。这个:
Set Shape1 = objSlide.Shapes.AddPicture(Range("B5") & Image_Name_Pre, msoCTrue, msoCTrue, 100, 100)
为您提供对Shape1中新插入的图像的引用,因此您可以执行以下操作:
With Shape1
.Width = 300
.Height = 400
.Top = 140
.Left = 90
End With
与Shape2类似。
您也可以这样做:
Set Title = PPpres.Slides(i - 5)
这里有两个问题:
1)您尚未声明变量Title,并且
2)使用对象/方法/属性名称作为变量名称不是一个好习惯。
相反:
Dim oTitle as Slide
Set oTitle = PPpres.Slides(i - 5)