.addPicture 需要宽度和高度,但这可能最终导致图像变形。添加文件图像时有没有办法使用.LockAspectRatio = msoCTrue?
另外,你如何规定一个页面来放置 Canvas 或图片?需要先停止宏录制器,然后才能以某种方式处理图像。
Set sCanvas = ActiveDocument.Shapes _
.AddCanvas(Left:=MillimetersToPoints(20), Top:=MillimetersToPoints(20), _
Width:=300, Height:=200)
Set CanvasShapes = sCanvas.CanvasItems
With CanvasShapes
.AddPicture FileName:="C:\somepath\image.png", _
Left:=0, Top:=0, Width:=150, Height:=100
...
End With
最佳答案
将 Canvas 大小设置为 0 并锁定其宽高比,然后添加图片。 Canvas 将缩放以适应它。加载图像后,然后根据需要缩放 Canvas :
Set sCanvas = ActiveDocument.Shapes.AddCanvas(MillimetersToPoints(20), MillimetersToPoints(20), 0, 0)
sCanvas.LockAspectRatio = True
Set CanvasShapes = sCanvas.CanvasItems
With CanvasShapes
.AddPicture "C:\somepath\image.png"
End With
'Scale the canvas here.
关于vba - 字VBA : Insert a picture without known aspect ratio of file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39838980/