ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 422|回复: 8

[求助] word将剪贴板中的图片放到圆角矩形中,用VBA代码如何实现?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-7-20 19:03 | 显示全部楼层 |阅读模式
本帖最后由 vistababy 于 2023-7-20 19:06 编辑



就是在word中,插入一张图片,复制,然后插入----形状---圆角矩形,矩形右键---设置形状格式,在右侧窗口中点“填充---图片---来自剪贴板”,就可以把刚刚在剪贴板中的图片放到圆角矩形中,图片就有了圆角。如下图所示。
这个是能实现的。但我想得到vba代码,试着用宏录制,发现这些操作不能录制。
有高手知道怎么弄吗?有代码不?谢谢
版本:word2016或2021(因为2013及以下版本好像没有这个把剪贴板中的图片放到形状中的功能,当然2013有把图片文件放到形状中的功能,不支持剪贴板啊)
求代码

截屏_2023-07-20_18-56-18.png

TA的精华主题

TA的得分主题

发表于 2023-7-20 20:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

Sub InsertPictureInRoundedRectangle()
    Dim rng As Range
    Dim shp As Shape

    ' 插入圆角矩形
    Set rng = Selection.Range
    Set shp = ActiveDocument.Shapes.AddShape(msoShapeRoundedRectangle, rng.Left, rng.Top, 200, 100)
   
    ' 设置圆角矩形的样式
    With shp
        .Fill.Visible = msoTrue
        .Fill.UserPicture "C:\路径\图片.jpg"  ' 设置默认图片,可更改为其他图片路径
        .Fill.TextureTile = msoFalse
        .Fill.TextureOffsetX = 0
        .Fill.TextureOffsetY = 0
        .Fill.RotateWithObject = msoTrue
        .Fill.Transparency = 0
        .Fill.BackColor.RGB = RGB(255, 255, 255)
        .Fill.ForeColor.RGB = RGB(255, 255, 255)
    End With
   
    ' 粘贴剪贴板中的图片
    rng.Paste
   
    ' 将剪贴板中的图片设置为圆角矩形的填充图片
    With shp.Fill
        .Visible = msoTrue
        .UserPicture
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2023-7-21 15:43 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-24 13:39 | 显示全部楼层
本帖最后由 vistababy 于 2023-7-24 13:59 编辑
约定的童话 发表于 2023-7-20 20:25
Sub InsertPictureInRoundedRectangle()
    Dim rng As Range
    Dim shp As Shape

测试过吗?我试了一下,好像没有用啊。。而且还出错。我也搞不懂了。
把文档中已经存在的图片复制或剪切到剪贴板,然后插入一个圆角矩形,把刚刚剪切的图片填充放到圆角矩形当中,这个没有实现,就是这个有难度,说明白点就是给文档中已经存在的图片加圆角,而不需要从外部选择图片或插入图片。

如果是先插入一个圆角矩形,然后填充图片,从文件管理器中选中一张图片,这个倒是很简单的。


TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-24 14:21 | 显示全部楼层
本帖最后由 vistababy 于 2023-7-24 14:26 编辑
约定的童话 发表于 2023-7-20 20:25
Sub InsertPictureInRoundedRectangle()
    Dim rng As Range
    Dim shp As Shape


我发现了一个更简单的方法,就是映像圆角矩形功能,可以直接给里面的图片加圆角,再将右边参数后3个全部设为0或将透明度设置为100%,就可以取消下边的重影。
但VBA代码呢?录制也录不出来

截屏_2023-07-24_14-18-58.png

TA的精华主题

TA的得分主题

发表于 2023-7-24 20:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
vistababy 发表于 2023-7-24 14:21
我发现了一个更简单的方法,就是映像圆角矩形功能,可以直接给里面的图片加圆角,再将右边参数后3个全 ...

你这需求干嘛用的?附件发我研究下QQ1975382969

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-24 23:25 | 显示全部楼层
约定的童话 发表于 2023-7-24 20:39
你这需求干嘛用的?附件发我研究下QQ1975382969

也没啥特殊用途,就是想一键批量给文档里面的图片加圆角而已,再设置一个固定的长宽尺寸。
先插入圆角形状,再填充图片,这个批量功能我已经做好了,批量处理身份证老方便了
但是如果图片已经在文档中,却不太好弄,所以需要这个功能

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-24 23:27 | 显示全部楼层
本帖最后由 vistababy 于 2023-7-24 23:48 编辑

不过本贴寻求的方法用的机会不是很多。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-24 23:44 | 显示全部楼层
本帖最后由 vistababy 于 2023-7-25 13:18 编辑




您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 07:28 , Processed in 0.033798 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表