如何在选择的每个单元格周围添加文本 box/shape?

how to add text box/shape around each cell in the selection?

是否有 VBA 代码可以在所选内容的每个单元格周围添加文本框。文本框应该与单元格的大小完全相同(类似于边框)?

您可以使用.AddTextbox方法。遍历所选单元格,并使用单元格的尺寸属性设置文本框的尺寸。

Sub cellsToTextbox()

    Dim cel As Range

    For Each cel In Selection
        cel.Worksheet.Shapes.AddTextbox 1, cel.Left, cel.Top, cel.Width, cel.Height
    Next cel

End Sub

修改文本框属性

如果您想更改任何文本框属性,我会在您创建文本框本身时进行。我的首选方法是将整个 .AddTextbox() 方法包装到 With 语句中,然后更改其中的各个属性。

这是一个更改 VerticalAnchor 属性 的示例(我也将您在此处更改列大小的请求从 移至此示例):

Sub cellsToTextbox()

    Dim cel As Range

    For Each cel In Selection
        With cel.Worksheet.Shapes.AddTextbox(1, cel.Left, cel.Top, _
                        cel.Resize(ColumnSize:=3).Width, cel.Height)

            .TextFrame2.VerticalAnchor = msoAnchorMiddle

        End With
    Next cel

End Sub