Home » excel » excel – how to add text box/shape around each cell in the selection?

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

Posted by: admin May 14, 2020 Leave a comment

Questions:

Is there a VBA code to add textboxes around each cell in the selection. textboxes should be exactly the size of the cell(similar to borders)?

How to&Answers:

You can use the .AddTextbox method. Loop through the cells in your selection, and use the cell’s dimensional properties to set the dimensions of your textbox.

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

Modifying Textbox Properties

If you wanted to change any of the textbox properties, I would do it while you are creating the textbox itself. My preferred method would be to wrap the entire .AddTextbox() method into a With statement, and change the individual properties there.

Here’s an example changing the VerticalAnchor property (I also moved your request to change the column size here from your comment to this example):

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