PowerPoint VBA导入图像,然后以恒定的宽高比调整大小

时间:2016-05-26 15:55:16

标签: vba powerpoint

我正在努力做标题中所说的内容。我的子包括:

Set oPic = oSld.Shapes.AddPicture(FileName:=strPath & strTemp, _
                                  LinkToFile:=msoFalse, _
                                  SaveWithDocument:=msoTrue, _
                                  Left:=35, _
                                  Top:=260, _
                                  Width:=-1, _
                                  Height:=245)

oPic.LockAspectRatio = msoCTrue
oPic.Height = 255

但由于某种原因,纵横比实际上并未锁定 - 图像高度减少到255点,但宽度保持不变。我有什么想法我错了吗?

1 个答案:

答案 0 :(得分:1)

使用

oPic.LockAspectRatio = msoTrue

不,msoCTrue

我可以使用您的代码重新创建您的问题,我可以通过在加载图片时不指定高度来使图片表现出来:

Set oPic = oSld.Shapes.AddPicture(FileName:=strPath & strTemp, _
                                  LinkToFile:=msoFalse, _
                                  SaveWithDocument:=msoTrue, _
                                  Left:=35, _
                                  Top:=260, _
                                  Width:=-1, _
                                  Height:=-1)

oPic.LockAspectRatio = msoTrue
oPic.Height = 255

看起来宽高比来自图片数据 - 而不是来自您当前的图片缩放。如果这仍然无法实现您的需求,我可以看到两条路径:

  1. 更新您的图片文件以满足您真正需要的宽高比,然后使用上述方法。

  2. 通过计算高度/宽度并设置它们而不是使用.lockaspectratio,以编程方式设置所需的宽高比。