ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何判断是否插入指定的外部图片

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-12-21 09:48 | 显示全部楼层 |阅读模式
用vba判定操作是否正确
有外部文件“XX.jpg”,通过插入图片的方式,保存在word中,然后需要通过vba判定是否插入了名为“XX.jpg”的图片

Dim tu As Shape
    For Each tu In .Shapes
        If tu.WrapFormat.Type = 1 Then score = score + 1
        If tu.Width = 113.35 Then score = score + 1
        If tu.Height = 85 Then score = score + 1
        if tu.(??)="XX.jpg"  Then score = score + 1
    Next


目前写了  环绕方式、宽高属性 都能找到
就是这个文件名不知道怎么判定。有name属性,但是结果为Picture1

盼望各位大大能帮忙解惑,万分感谢!

另: 我找到用剪贴画的 .AlternativeText 属性进行判断的方式,在这里应该不适用,
操作部分不可修正,只是进行操作后的判定

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-21 09:50 | 显示全部楼层
啊 还有一个位置属性 .top好像是相对的 是否存在绝对位置的属性

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-22 21:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-12-23 22:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
* 楼主,图形是 Shape,图片是 InlineShape,两者是不同的,可用
MsgBox ActiveDocument.InlineShapes.Count 语句来显示图片数量。
* 插入图片后,如何得到它的文件名,我试了再三,也未得知。
* 但换一个思路:插入图片是可以用 VBA 宏来控制的(图片最好命名为系列字母+数字,如 China001 之类,批量改名可用 ACDSee),只要控制文件名就可以了,下面是录制宏:
Selection.InlineShapes.AddPicture FileName:="E:\PicIcon\Clip01.jpg"

TA的精华主题

TA的得分主题

发表于 2021-12-24 08:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
插入图片的同时,设置该图片的AlternativeText为文件名.再次插入时遍历文件名即可

TA的精华主题

TA的得分主题

发表于 2021-12-24 09:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
调用API,两幅画逐像素比较,如果图片在word压缩过就不知道怎么解决了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-25 20:36 | 显示全部楼层
413191246se 发表于 2021-12-23 22:57
* 楼主,图形是 Shape,图片是 InlineShape,两者是不同的,可用
MsgBox ActiveDocument.InlineShapes.Co ...

谢谢

我现在是需要 对操作后的文件进行判定 所以插入过程中的文件名是没有用的

然后 我这个图片已经改过环绕方式了 不是嵌入式 所以已经转换为shape了

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-25 20:37 | 显示全部楼层
daibao88 发表于 2021-12-24 09:54
调用API,两幅画逐像素比较,如果图片在word压缩过就不知道怎么解决了。

谢谢 我试试看

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-25 20:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zmj9151 发表于 2021-12-24 08:18
插入图片的同时,设置该图片的AlternativeText为文件名.再次插入时遍历文件名即可

谢谢 我也有找到这种方法
但是在我这里不适用  操作部分是A完成的  现在是B负责核准 所以......

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-3 19:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
最终也没弄出来 搞成有图片就送分了

关于位置 网上找到一个  放这里分享下
要求是 判断是否在第四段插入 图片

    tu.ConvertToInlineShape '按嵌入式的找 InlineShapes才有Paragraphs
    If .InlineShapes.Count > 0 Then  '判定是否在第四段
        If InStr(.InlineShapes(1).Range.Paragraphs(1).Range.Text, "第四段某特殊字符") > 0 Then score = score + 2
    End If

就这样  不弄了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 12:39 , Processed in 0.042237 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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