如何在所选内容的每个单元格周围添加文本框/形状?

时间:2018-12-13 07:32:38

标签: excel vba textbox

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

1 个答案:

答案 0 :(得分:2)

您可以使用.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属性的示例(我也将您的请求(此处将列大小从your comment更改为此示例)

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