跳到主要内容

设置单元格批注

在 Excel VBA 中,您可以使用 Range 对象的 AddComment 方法为单元格添加批注。

添加批注

以下示例在单元格 A1 添加一个批注,批注内容为 "Excel VBA 教程",且隐藏批注。

Sub AddCommentToCell()
    Dim cell As Range
    
    ' 设置要添加批注的单元格
    Set cell = Range("A1")
    
    ' 检查单元格是否已有批注,如果没有则添加批注
    If cell.Comment Is Nothing Then
        
        ' 添加新的批注
        cell.AddComment "Excel VBA 教程"
        
        ' 设置批注的可见性为隐藏
        cell.Comment.Visible = False
    End If
End Sub

编辑批注

使用 Comment 对象的 Text 方法,能够获取或修改单元格批注的文本。

Sub EditComment()
    ' 设置要修改批注的单元格
    With Range("A2")
        ' 检查单元格是否已有批注,如果有则
        If Not .Comment Is Nothing Then
            ' 在对话框中显示批注内容
            MsgBox .Comment.Text
            ' 更改批注内容
            .Comment.Text Text:="果果云课堂"
        End If
    End With
End Sub

Comment.Text 方法

语法

Comment.Text (TextStartOverwrite)

参数

名称 必需/可选 数据类型 说明
Text 可选 Variant 要添加的文本。
Start 可选 Variant 所添加文本的起始位置(字符数)。如果省略此参数,则删除批注中的所有现有文字。
Overwrite 可选 Variant 如果为 False,则插入文本。默认值为 True,(文本被覆盖) 。

返回值

String

示例

以下示例代码将单元格 A2 的批注文本另起一行再添加 A2 单元格中的内容到批注文本。

Sub CommentText()
    With Range("A2").Comment
        .Text Text:=VBA.vbCrLf & Range("A2").Value, Start:=Len(.Text) + 1
    End With
End Sub

修改批注外观

在默认情况下,批注的外观是一个矩形框,Comment.Shape 属性返回一个 Shape 对象,该对象代表附加到指定批注的形状,通过设置 Shape 对象的 AutoShapeType 属性可以修改批注的外观。

以下示例代码将单元格 A2 的批注外观改为一个圆角矩形:

Sub ChangeCommentShapeType()
    Range("A2").Comment.Shape.AutoShapeType = msoShapeRoundedRectangle
End Sub

以下示例代码将单元格 A2 的批注外观恢复为一个直角矩形:

Sub RestoreCommentShapeType()
    Range("A2").Comment.Shape.AutoShapeType = 1 'msoShapeRectangle
End Sub

MsoAutoShapeType 常量

MsoAutoShapeType 常量指定 AutoShape 对象的形状类型。

名称 描述
msoShape10pointStar 149 10 磅星
msoShape12pointStar 150 12 磅星
msoShape16pointStar 94 16 磅星
msoShape24pointStar 95 24 磅星
msoShape32pointStar 96 32 磅星
msoShape4pointStar 91 4 磅星
msoShape5pointStar 92 5 磅星
msoShape6pointStar 147 6 磅星
msoShape7pointStar 148 7 磅星
msoShape8pointStar 93 8 磅星
msoShapeActionButtonBackorPrevious 129 “后退”或“上一个”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonBeginning 131 “开始”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonCustom 125 不带默认图片或文本的按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonDocument 134 “文档”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonEnd 132 “结束”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonForwardorNext 130 “前进”或“下一个”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonHelp 127 帮助按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonHome 126 “主页”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonInformation 128 “信息”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonMovie 136 “影片”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonReturn 133 “返回”按钮。支持鼠标单击和鼠标移过操作。
msoShapeActionButtonSound 135 “声音”按钮。支持鼠标单击和鼠标移过操作。
msoShapeArc 25
msoShapeBalloon 137 气球
msoShapeBentArrow 41 带 90 度圆角的箭头。
msoShapeBentUpArrow 44 带 90 度直角的箭头。默认情况下上指。
msoShapeBevel 15 棱台效果
msoShapeBlockArc 20 块弧
msoShapeCan 13
msoShapeChartPlus 182 正方形垂直和水平分为四个季度
msoShapeChartStar 181 正方形沿垂直线和对角线分为六个部分
msoShapeChartX 180 正方形沿对角线分为四部分
msoShapeChevron 52 雪佛龙
msoShapeChord 161 圆圈,用一条线连接两个点的外围通过圆的内部;带和弦的圆
msoShapeCircularArrow 60 曲线 180 度角后面的方块箭头
msoShapeCloud 179 云形状
msoShapeCloudCallout 108 云标注
msoShapeCorner 162 带矩形孔的矩形。
msoShapeCornerTabs 169 沿矩形路径对齐的四个右三角形;四个“被砍”的角落。
msoShapeCross 11 十字形
msoShapeCube 14 立方体
msoShapeCurvedDownArrow 48 向下弯曲的方块箭头
msoShapeCurvedDownRibbon 100 向下弯曲的功能区横幅
msoShapeCurvedLeftArrow 46 向左弯曲的方块箭头
msoShapeCurvedRightArrow 45 向右弯曲的方块箭头
msoShapeCurvedUpArrow 47 向上弯曲的方块箭头
msoShapeCurvedUpRibbon 99 向上弯曲的功能区横幅
msoShapeDecagon 144 十边形
msoShapeDiagonalStripe 141 删除了两个三角形形状的矩形;对角线
msoShapeDiamond 4 菱形
msoShapeDodecagon 146 十二边形
msoShapeDonut 18 甜甜圈
msoShapeDoubleBrace 27 双大括号
msoShapeDoubleBracket 26 双括号
msoShapeDoubleWave 104 双波
msoShapeDownArrow 36 向下指向的块箭头
msoShapeDownArrowCallout 56 带有向下箭头的标注
msoShapeDownRibbon 98 功能区下中心区域位于功能区末端的功能区横幅
msoShapeExplosion1 89 爆炸
msoShapeExplosion2 90 爆炸
msoShapeFlowchartAlternateProcess 62 备用流程图符号
msoShapeFlowchartCard 75 卡片流程图符号
msoShapeFlowchartCollate 79 排序规则流程图符号
msoShapeFlowchartConnector 73 连接器流程图符号
msoShapeFlowchartData 64 数据流程图符号
msoShapeFlowchartDecision 63 决策流程图符号
msoShapeFlowchartDelay 84 延迟流程图符号
msoShapeFlowchartDirectAccessStorage 87 直接访问存储流程图符号
msoShapeFlowchartDisplay 88 显示流程图符号
msoShapeFlowchartDocument 67 文档流程图符号
msoShapeFlowchartExtract 81 提取流程图符号
msoShapeFlowchartInternalStorage 66 内部存储流程图符号
msoShapeFlowchartMagneticDisk 86 磁盘流程图符号
msoShapeFlowchartManualInput 71 手动输入流程图符号
msoShapeFlowchartManualOperation 72 手动操作流程图符号
msoShapeFlowchartMerge 82 合并流程图符号
msoShapeFlowchartMultidocument 68 多文档流程图符号
msoShapeFlowchartOfflineStorage 139 脱机存储流程图符号
msoShapeFlowchartOffpageConnector 74 页外连接器流程图符号
msoShapeFlowchartOr 78 “Or”流程图符号
msoShapeFlowchartPredefinedProcess 65 预定义流程图符号
msoShapeFlowchartPreparation 70 准备流程图符号
msoShapeFlowchartProcess 61 流程图符号
msoShapeFlowchartPunchedTape 76 打孔磁带流程图符号
msoShapeFlowchartSequentialAccessStorage 85 顺序访问存储流程图符号
msoShapeFlowchartSort 80 排序流程图符号
msoShapeFlowchartStoredData 83 存储的数据流程图符号
msoShapeFlowchartSummingJunction 77 求和交汇点流程图符号
msoShapeFlowchartTerminator 69 终止符流程图符号
msoShapeFoldedCorner 16 折叠角
msoShapeFrame 158 矩形相框
msoShapeFunnel 174 漏斗
msoShapeGear6 172 带六颗牙齿的齿轮
msoShapeGear9 173 带九颗牙齿的齿轮
msoShapeHalfFrame 159 矩形相框的一半
msoShapeHeart 21 心形
msoShapeHeptagon 145 七边形
msoShapeHexagon 10 六边形
msoShapeHorizontalScroll 102 水平滚动
msoShapeIsoscelesTriangle 7 等腰三角形
msoShapeLeftArrow 34 向左指向的块箭头
msoShapeLeftArrowCallout 54 带有向左箭头的标注
msoShapeLeftBrace 31 左大括号
msoShapeLeftBracket 29 左括号
msoShapeLeftCircularArrow 176 指向逆时针的圆形箭头
msoShapeLeftRightArrow 37 带向左和向右箭头的块箭头
msoShapeLeftRightArrowCallout 57 带有向左和向右箭头的标注
msoShapeLeftRightCircularArrow 177 指向顺时针和逆时针的圆形箭头;两端有点的曲线箭头
msoShapeLeftRightRibbon 140 两端都有箭头的功能区
msoShapeLeftRightUpArrow 40 带向左、向右和向上的箭头的块箭头
msoShapeLeftUpArrow 43 带向左和向上箭头的块箭头
msoShapeLightningBolt 22 闪电
msoShapeLineCallout1 109 带边框和水平标注线的标注
msoShapeLineCallout1AccentBar 113 带水平强调线的标注
msoShapeLineCallout1BorderandAccentBar 121 带边框和水平强调线的标注
msoShapeLineCallout1NoBorder 117 带水平线的标注
msoShapeLineCallout2 110 带对角线直线的标注
msoShapeLineCallout2AccentBar 114 带对角线标注线和强调线的标注
msoShapeLineCallout2BorderandAccentBar 122 带有边框、对角线和强调线的标注
msoShapeLineCallout2NoBorder 118 无边框和对角标注线的标注
msoShapeLineCallout3 111 带角度线的标注
msoShapeLineCallout3AccentBar 115 带角度标注线和强调线的标注
msoShapeLineCallout3BorderandAccentBar 123 带边框、角度标注线和强调线的标注
msoShapeLineCallout3NoBorder 119 无边框和带角度标注线的标注
msoShapeLineCallout4 112 带有形成 U 形的标注线段的标注
msoShapeLineCallout4AccentBar 116 带有强调线和标注线段的标注,形成 U 形
msoShapeLineCallout4BorderandAccentBar 124 带有构成 U 形的边框、强调线和标注线段的标注
msoShapeLineCallout4NoBorder 120 没有边框的标注和形成 U 形的标注线段
msoShapeLineInverse 183 行反
msoShapeMathDivide 166 除法符号 ÷
msoShapeMathEqual 167 等效符号 =
msoShapeMathMinus 164 减法符号 -
msoShapeMathMultiply 165 乘法符号 x
msoShapeMathNotEqual 168 非等效符号 
msoShapeMathPlus 163 加法符号 +
msoShapeMixed -2 只返回值,表示其他状态的组合。
msoShapeMoon 24 月亮
msoShapeNonIsoscelesTrapezoid 143 具有非对称非并行侧的梯形
msoShapeNoSymbol 19 “No”符号
msoShapeNotchedRightArrow 50 向右指向的凹槽块箭头
msoShapeNotPrimitive 138 不支持
msoShapeOctagon 6 八角形
msoShapeOval 9 椭圆形
msoShapeOvalCallout 107 椭圆形标注
msoShapeParallelogram 2 平行四边形
msoShapePentagon 51 五角大楼
msoShapePie 142 缺少部分的圆形 (“pie”)
msoShapePieWedge 175 圆形的四分之一
msoShapePlaque 28 斑块
msoShapePlaqueTabs 171 定义矩形形状的四个四分之一圆
msoShapeQuadArrow 39 指向向上、向下、向左和向右的块箭头
msoShapeQuadArrowCallout 59 带有指向向上、向下、向左和向右的箭头的标注
msoShapeRectangle 1 矩形
msoShapeRectangularCallout 105 矩形标注
msoShapeRegularPentagon 12 五角大楼
msoShapeRightArrow 33 向右指向的方块箭头
msoShapeRightArrowCallout 53 带有向右箭头的标注
msoShapeRightBrace 32 右大括号
msoShapeRightBracket 30 右括号
msoShapeRightTriangle 8 右三角形
msoShapeRound1Rectangle 151 带一个圆角的矩形
msoShapeRound2DiagRectangle 157 具有两个圆角的矩形,对角线对角
msoShapeRound2SameRectangle 152 具有共享一侧的两个圆角的矩形
msoShapeRoundedRectangle 5 圆角矩形
msoShapeRoundedRectangularCallout 106 圆角矩形标注
msoShapeSmileyFace 17 笑脸
msoShapeSnip1Rectangle 155 具有一个夹角的矩形
msoShapeSnip2DiagRectangle 157 具有两个斜角的矩形,对角线对角
msoShapeSnip2SameRectangle 156 具有共享一侧的两个夹角的矩形
msoShapeSnipRoundRectangle 154 具有一个剪切角和一个圆角的矩形
msoShapeSquareTabs 170 定义矩形形状的四个小正方形
msoShapeStripedRightArrow 49 向右指的方块箭头,尾部有条纹
msoShapeSun 23 太阳
msoShapeSwooshArrow 178 曲线箭头
msoShapeTear 160 水滴
msoShapeTrapezoid 3 梯形
msoShapeUpArrow 35 向上指向的块箭头
msoShapeUpArrowCallout 55 带向上箭头的标注
msoShapeUpDownArrow 38 向上和向下指向的块箭头
msoShapeUpDownArrowCallout 58 带有向上和向下箭头的标注
msoShapeUpRibbon 97 功能区两端中心区域上方的功能区横幅
msoShapeUTurnArrow 42 形成 U 形状的块箭头
msoShapeVerticalScroll 101 垂直滚动
msoShapeWave 103 海浪

添加图片批注

我们还可以为单元格批注添加背景图片或者直接将图片作为批注的内容。

以下示例代码如下将当前工作簿所在文件夹中的图片“Panda.jpg”作为单元格 A2 批注的背景图片。

Sub FillCommentPictureShape()
    With Range("A2").Comment
        .Shape.Fill.UserPicture ThisWorkbook.path & "\Panda.jpg"
    End With
End Sub

Shape 对象的 Fill 属性能够返回 FillFormat 对象,该对象包含指定的图表或图形的填充格式属性,FillFormat 对象的 UserPicture 方法为形状填充图像,其语法格式如下:

UserPicture (PictureFile)

其中,参数 PictureFile 指定要填充的图片文件的文件路径,或者图片文件的名称(如果当前存在指向图片文件的链接)。

清除批注填充

以下代码清除单元格 A2 中的批注填充效果,保留文字填充:

Sub ClearCellCommentFill()
    With Range("A2").Comment
        ' 清除批注的填充
        .Shape.Fill.Visible = msoFalse
    End With
End Sub

设置批注字体

通过单元格批注的 Shape 对象中的 TextFrame 对象(文本框对象)的 Characters 对象(字符对象)进行批注的字体设置。

以下示例代码设置活动工作表中所有批注的字符格式,字体为仿宋,加粗,字号为14号,字体颜色为黑色:

Sub CommentFont()
    Dim objComment As Comment
    For Each objComment In ActiveSheet.Comments
        With objComment.Shape.TextFrame.Characters.Font
            .Name = "仿宋"  ' 设置字体为仿宋
            .Bold = True  ' 设置字体为粗体
            .Size = 14  ' 设置字号为14
            .Color = RGB(0, 0, 0) ' 设置字体颜色为黑色
        End With
    Next objComment
    Set objComment = Nothing
End Sub

评论

您的电子邮件地址不会显示出来。*号为必填项。