Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9015|回复: 14

关于批注填充图片保持纵横比代码怎么写?

[复制链接]
发表于 2019-4-14 12:01 | 显示全部楼层 |阅读模式
1学分
关于批注填充图片保持纵横比代码怎么写? 请看附件

Sub 插入批注背景图片()

  Range("C4:C100").ClearComments   '删除批注
  Dim i As Integer
  For i = 4 To [C65536].End(xlUp).Row
  On Error Resume Next
    jname = Range("C" & i).Value

    desfile = ThisWorkbook.Path & "\" & jname & ".png"  '图片文件位置
    If Dir(desfile) = "" Then GoTo abbb

    Range("C" & i).AddComment
    Range("C" & i).Comment.Shape.Fill.UserPicture desfile


On Error GoTo abbb

    Range("C" & i).Comment.Shape.Height = 200
    Range("C" & i).Comment.Shape.Width = 500

abbb: Next

End Sub


121.png
 楼主| 发表于 2019-4-14 12:01 | 显示全部楼层
现在是可以插入批注 但是不能保持纵横比
回复

使用道具 举报

 楼主| 发表于 2019-4-14 14:40 | 显示全部楼层
我 尝试用录制的方式也找不到锁定的相关线索
回复

使用道具 举报

发表于 2019-4-15 15:42 | 显示全部楼层
QQ截图20190415153107.jpg


'设置形状格式 > 锁定纵横比
Sub test()
    Sheets(1).Shapes.AddShape(msoShapeCube, 50, 50, 100, 200).LockAspectRatio = msoTrue   
End Sub


Shape.LockAspectRatio 属性,测试后我觉得好像无效。
如果一定要保持比例,就自己算吧
原图的宽 / 原图的高 = 指定的宽 / 指定的高

回复

使用道具 举报

 楼主| 发表于 2019-4-15 16:01 | 显示全部楼层
爱疯 发表于 2019-4-15 15:42
'设置形状格式 > 锁定纵横比
Sub test()
    Sheets(1).Shapes.AddShape(msoShapeCube, 50, 50, 10 ...

爱疯  你居然还在论坛,而且摇身变为大师级别了
我记得07还是08年的时候和你一起在论坛学习过
当时你就是一个非常好学的,可惜我后面因为某种原因隔了好多年没怎么学习关于e的相关知识了
回复

使用道具 举报

 楼主| 发表于 2019-4-15 16:04 | 显示全部楼层
Sub 插入批注背景图片()

  Range("C4:C100").ClearComments   '删除批注
  Dim i As Integer, w, h
  For i = 4 To [C65536].End(xlUp).Row
  On Error Resume Next
    jname = Range("C" & i).Value
   
    desfile = ThisWorkbook.Path & "\" & jname & ".png"  '图片文件位置
    If Dir(desfile) = "" Then GoTo abbb
   
ActiveSheet.Pictures.Insert(desfile).Select    '插入图片并选中
w = Selection.Width               '对W进行赋值等于选中图片的宽度
h = Selection.Height              '对H进行赋值等于选中图片的高度
Selection.Delete                  '选中的图片删除

    Range("C" & i).AddComment
    Range("C" & i).Comment.Shape.Height = h
    Range("C" & i).Comment.Shape.Width = w
   
    Range("C" & i).Comment.Shape.Fill.UserPicture desfile
   
abbb: Next

End Sub

我找了一些相关资料,目前能做到的只能是先算图片的高宽再设置批注大小来1:1显示 , 还是没有办法锁定纵横比随意调整批注大小

爱疯是否还记得当时一起考段的时候吗
回复

使用道具 举报

发表于 2019-4-15 16:09 | 显示全部楼层
wanjie2019 发表于 2019-4-15 16:01
爱疯  你居然还在论坛,而且摇身变为大师级别了
我记得07还是08年的时候和你一起在论坛学习过
当时 ...

我只是喜欢看看这些,参与回答一下而已
哪儿什么大师,还不是经常碰到不会的内容。
之前你的论坛用户名是别的名字,可能我只记得一些简单的、中文名

回复

使用道具 举报

 楼主| 发表于 2019-4-15 16:18 | 显示全部楼层
爱疯 发表于 2019-4-15 16:09
我只是喜欢看看这些,参与回答一下而已
哪儿什么大师,还不是经常碰到不会的内容。
之前你的论坛用户名 ...

忘记论坛名了  我去段位考试帖里面看看能不能找到当时的论坛名
记得当时没怎么听过小妖老师的课还挺可惜的
回复

使用道具 举报

发表于 2019-4-15 16:22 | 显示全部楼层
手动设置锁定纵横比,如果没有差异,那用代码肯定也一样。
是啥实际问题,非要保持比例?
回复

使用道具 举报

 楼主| 发表于 2019-4-15 17:10 | 显示全部楼层
爱疯 发表于 2019-4-15 16:22
手动设置锁定纵横比,如果没有差异,那用代码肯定也一样。
是啥实际问题,非要保持比例?

图片高宽比例不一致,如果设置统一size 图片会变形,现在能找到的办法是先判断图片大小再1:1调整批注大小再插入,这样的话就是批注大小会不一致
还不能实现锁定纵横比后插入再调整批注统一大小
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-5 07:37 , Processed in 0.282864 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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