VBA代码自动调整单元格注释大小

4

在Excel(2016)中添加单元格注释时,注释框的大小常常不够优化,需要手动调整。我定义了这个宏(使用我从这里获取的VBA代码),以自动调整当鼠标悬停在单元格上时出现的单元格注释的大小:

Sub FitComments()
Dim xComment As Comment
For Each xComment In Application.ActiveSheet.Comments
    xComment.Shape.TextFrame.AutoSize = True
Next
End Sub

然而,我希望这个宏可以做到以下几点:
  1. 不仅可以在一行上调整注释框大小,还可以跨越多行,优化矩形的纵横比(就像谷歌电子表格自动调整任何单元格注释框的方式一样)
  2. 仅对当前单元格的注释进行操作,而非工作表中的所有单元格注释
我并没有真正了解VBA。有人能指出我需要改变代码的哪些部分吗?谢谢!

这个宏怎么调用? - dwirony
2个回答

5
Sub FitComments()
Dim Rng As Range
Dim Cell As Range
Set Rng = Selection
For Each Cell In Rng
    If Not Cell.Comment Is Nothing Then
    Cell.Comment.Shape.TextFrame.AutoSize = True
    End If
Next
End Sub

由于当前位置无法测试Excel 2016,否则我会在发布前进行测试。我正在运行Office 365,它会自动按照您所描述的方式进行调整大小。多个版本已经过测试,直到宏不出错为止。

该代码背后的概念是基于单元格为基础,在选择范围内对注释应用自动调整大小。

我将该宏应用于Control + (字母)键盘激活,以便快速访问。

逐行进入代码,它按预期步骤运行测试选择的数量。


非常感谢您的帮助!然而,评论框仍然被拉伸成一个长的单行,而不是采用更适合文本的矩形形状。 - z8080
这就是我要找的。它使用从 UI 访问的相同选项,通过编辑注释、右键单击注释边框、点击“格式化注释”、进入“对齐”选项卡,并勾选名为“自动大小”的框。请注意,此方法尊重文本中的换行符,但不会换行过长的文本行。如 OP 所述,注释中的任何长文本行都将使注释框的大小变得一样长。 - ChrisB

4
Sub Resize_All_Comments()

Dim xComment As Comment
Dim KHeight As Long
Dim KWidth As Long

On Error Resume Next

KHeight = Application.InputBox("Add text", "Height", "500", Type:=2)
KWidth = Application.InputBox("Add text", "Width", "500", Type:=2)

For Each xComment In Application.Select.Comment
    xComment.Shape.Width = KWidth
    xComment.Shape.Height = KHeight

Next
MsgBox "Done"
End Sub

使用此功能,您可以根据自己的需求调整大小,注意,它将调整当前工作表中的所有注释。
希望对某些人有所帮助。
最初的回答:使用此功能,您可以根据需要调整大小,但请注意,它会调整当前工作表中的所有注释。希望这能帮助到某些人。

谢谢,我会尝试的! - z8080

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接