如何在选择的每个单元格周围添加文本 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
是否有 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