vba - 字VBA : Insert a picture without known aspect ratio of file

标签 vba ms-word

.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/

相关文章:

html - 从 MS Word 或 Libre Office 到干净的 HTML

c# - 通过 .NET 自动化在 Word 文档中搜索和替换

c# - 如何从 Word 2010 插件(用 C# 开发)获取 "KeyPress"事件?

excel - 使用 Excel VBA 修复协议(protocol)

excel - 根据部分文本删除行

vb.net - 以编程方式更改Word文档的版本?

php - 在 Linux 上获取 .doc 文档中的页数

excel - VBA 如果选择了特定的列和行,则类型不匹配错误

excel - 范围内的二维数组

vba - 显示包含两个给定值之间的值的行