Если вы не против забыть элементы управления ActiveX, тогда:
Sub pastetextboxes()
For i = 1 To 10
With ActiveSheet.Cells(i, 5)
ActiveSheet.Shapes.AddTextbox msoTextOrientationHorizontal, .Left, .Top, .Width, .Height
End With
Next i
End Sub
Эти фигуры изменятся в размерах, когда вы поиграете с шириной столбца или высотой строки.
Если вы хотите элементы управления ActiveX, вы можете сделать это так:
Sub pastetextboxes()
For i = 1 To 10
With ActiveSheet.Cells(i, 5)
Set test = ActiveSheet.OLEObjects.Add(classtype:="Forms.textbox.1", Link:=False, Displayasicon:=False, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
test.Placement = xlMoveAndSize
End With
Next i
End Sub
Надеюсь, вы не будете бороться с ошибкой размера шрифта при использовании элементов управления ActiveX.