在VBA中缩放图片

时间:2013-08-15 17:17:26

标签: vba excel-vba excel-2010 excel

目前我正在尝试在VBA中缩放图片,但似乎无法获得我需要的内容。每次我跑......但

ActiveSheet.Pictures.Insert("C:\\\Logo.bmp").Select
            With Selection
                  .ShapeRange.ScaleWidth 1.4, msoTrue
                  .ShapeRange.ScaleHeight 0.5, msoFalse
             End With 

它最初将缩放到正确的宽度,但是当我转到下一行并尝试缩放高度时,它会改变宽度。有人可以帮助我理解为什么会发生这种情况,并建议一种更好的缩放图片的方法。我需要它的长度大约125%,高度小约50%。

非常感谢。

2 个答案:

答案 0 :(得分:6)

包括以下一行:

.ShapeRange.LockAspectRatio = msoFalse

要允许宽度和高度“解锁”,请将其放在顶部。

With Selection
    .ShapeRange.LockAspectRatio = msoFalse
    .ShapeRange.ScaleWidth 1.4, msoTrue
    .ShapeRange.ScaleHeight 0.5, msoFalse
End With

答案 1 :(得分:-1)

在ShapeRange.ScaleWidth和ScaleHeight方法中,如果想要相对缩放它,则RelativeToOriginalSize参数应为 msoFalse (如在维持纵横比时,它将调整宽度和缩放时的高度)。因此,如果您不希望它相对缩放,只需将该参数设置为 msoTrue

ActiveSheet.Pictures.Insert("C:\\\Logo.bmp").Select
With Selection
    .ShapeRange.ScaleWidth 1.4, msoTrue
    .ShapeRange.ScaleHeight 0.5, msoTrue
End With