【问题标题】:VBA Word Macro selecting inserted shapeVBA Word 宏选择插入的形状
【发布时间】:2021-03-22 12:38:23
【问题描述】:

我希望有一个简单的 VBA 宏,它可以插入图片然后更改其高度和宽度。它第一次运行。但是,用户可以通过多次运行宏来添加多张图片,我的问题是宏会插入下一张图像,但随后会调整文档上已有图像的大小,而不是刚刚插入的图像。我会假设 .count 将返回最后一张图像(即插入的那个 jsut)看起来“设置 myImage 行”没有引用刚刚插入的图像。

欢迎任何帮助。代码如下。

格雷格

ActiveDocument.Shapes.AddPicture Anchor:=Selection.Range, FileName:= _
    "c:\mydir\carp3d.tif", LinkToFile:=False, SaveWithDocument:=True
' get last inserted image
Set myImage = ActiveDocument.Shapes(ActiveDocument.Shapes.Count)
myImage.Select
myImage.LockAspectRatio = msoTrue
myImage.LockAspectRatio = msoTrue
myImage.Height = 180#
myImage.Width = 124.55

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    Shapes.AddPicture 返回一个您应该捕获的 Shape 对象:

    Set myImage = ActiveDocument.Shapes.AddPicture(....)
    
    myImage.LockAspectRatio = msoTrue
    ' and so on
    

    【讨论】:

    • 非常感谢。我不知道 AddPicture 的语法可以返回一个对象。工作完美!
    • 您不需要myImage.SelectmyImage.LockAspectRatio = msoTrue 中的两个。此外,锁定纵横比后,您只需要设置高度宽度,而不是两者。,
    • 再次感谢。我会清理代码。这是我从网上拿来的东西,我完全明白你的意思。
    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    相关资源
    最近更新 更多