![自动重新定义注释框尺寸以匹配 Excel 中的背景图像](https://linux22.com/image/1450373/%E8%87%AA%E5%8A%A8%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%E6%B3%A8%E9%87%8A%E6%A1%86%E5%B0%BA%E5%AF%B8%E4%BB%A5%E5%8C%B9%E9%85%8D%20Excel%20%E4%B8%AD%E7%9A%84%E8%83%8C%E6%99%AF%E5%9B%BE%E5%83%8F.png)
在 Excel 中,假设我选择一张图片(例如 test.jpeg)作为评论的背景。我希望评论框采用 test.jpeg 的尺寸。由于我计划有数百条这样的评论,我的问题是:有没有办法自动完成这一操作?
答案1
我修改了一个 VBA 宏。使用ALT+打开 VBA 编辑器F11,并将以下代码粘贴到工作表1ALT. 使用+执行宏F8
宏的作用
询问用户想要插入的图片的路径(可以是 jpg、bmp 或 png)
将该图片加载为
WIA.imageFile
。稍后我们使用objImage.Height
和objImage.Width
来获取真实的图片尺寸。我发现这种方法是获取像素尺寸的最短方法(其他 VBA 方法可能会给你缇。它们是一项可怕的发明)
如果当前选定的单元格中不存在旧注释,则在当前选定的单元格中插入空白注释
将所选图片设置为评论形状的背景图像
调整注释形状尺寸,使图片完美适合
Sub InsertComment()
Dim strImagePath As Variant
Dim objImage As Object
strImagePath = Application.GetOpenFilename("Picture, *.jpg; *.png; *.bmp")
If strImagePath = False Then Exit Sub
Set objImage = CreateObject("WIA.ImageFile")
objImage.LoadFile strImagePath
With ActiveCell
If .Comment Is Nothing Then .AddComment ("")
.Comment.Shape.Fill.UserPicture strImagePath
.Comment.Shape.Height = objImage.Height * 0.75
.Comment.Shape.Width = objImage.Width * 0.75
End With
End Sub