Andres在剪贴板中有一张图片。他希望针对所选单元格将图片放入评论中。如果该单元格没有评论,则需要创建一个。如果已经有评论,则需要将图片添加到其中。 Andres知道这需要一个宏,但是他不确定如何使用宏中的注释来完成他需要的工作。

Microsoft在最新的Office 365版本中现在将_comments_称为_notes_。但是,出于本技巧的目的,我将继续使用传统的_comments_名称来引用它们。

安德烈斯想做的事远没有人想像的那么容易。第一个问题是VBA中似乎没有办法使用剪贴板作为注解的图像源。可以通过将源更改为文件中的图像来解决此问题,换句话说,让宏允许用户选择一个图像文件,然后将其放置在注释中。

Sub AddCommentPicture()

Dim PicChoice As Variant

If ActiveCell.Comment Is Nothing Then         ActiveCell.AddComment     End If     PicChoice = Application.GetOpenFilename("JPEGs .jpg,.jpg")



If PicChoice = False Then         MsgBox "No file was selected."

Else         ActiveCell.Comment.Shape.Fill.UserPicture PicChoice         ActiveCell.Comment.Shape.LockAspectRatio = True     End If End Sub

宏测试活动单元格以查看是否有注释。如果没有,它将添加一个。然后,它显示一个“打开”对话框,其中仅显示JPG文件。 (您可以更改GetOpenFilename函数的参数以指示应显示的文件类型。)然后,将您选择的文件分配给注释。

请注意,该代码不执行任何调整图像大小的操作。如果需要,可以添加进行调整大小所需的代码。您需要直接在宏的结尾附近的锁定图像高宽比的行之后添加该代码。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(5489)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。