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

时间:2019-02-05 17:04:07

标签: excel

当人们在Excel(2016)中添加单元格注释时,注释框的大小显然不够理想,需要手动调整。我定义了此宏(使用从here获得的VBA代码)来自动调整将鼠标悬停在单元格上方时出现的单元格注释的大小:

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

但是,我希望此宏改为:

  1. 调整注释框的大小不仅在一行上,而且可以跨多个 线,优化矩形的长宽比(Google的方法 Spreadhseets会自动调整任何单元格注释框的大小,第二个 它被创建)
  2. 不对工作表中的所有单元格注释进行操作,仅对 根据当前单元格的评论

但是我对VBA并不了解。谁能指出我必须对代码进行哪些更改?谢谢!

2 个答案:

答案 0 :(得分:1)

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 +(选择字母)键盘激活,以便快速访问。

逐行进入代码,它经过了测试选择的预期步骤。

答案 1 :(得分:1)

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

您可以根据需要调整大小,请注意,它将调整当前工作表中所有注释的大小。

希望它对某人有帮助