Estamos automatizando Excel utilizando VB.Red, y tratando de colocar varias líneas de texto en una hoja de cálculo de Excel que podamos configurar para que no se impriman. Entre estos tendríamos informes imprimibles. Podemos hacer esto si agregamos objetos de cuadro de texto y configuramos la configuración del objeto de impresión en falso. (Si tienes otra manera, por favor dirígeme)
El código para agregar un cuadro de texto es:
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 145.5, 227.25, 304.5, 21#)
Pero el posicionamiento es en puntos. Necesitamos una forma de colocarlo sobre una celda específica y dimensionarla con la celda. ¿Cómo podemos averiguar dónde colocarlo cuando solo sabemos en qué celda colocarlo?
Respuestas
8 para la respuesta № 1Si tiene el nombre de la celda o la posición, puede hacer:
With ActiveSheet
.Shapes.AddTextbox msoTextOrientationHorizontal, .Cells(3,2).Left, .Cells(3,2).Top, .Cells(3,2).Width, .Cells(3,2).Height
End With
Esto agregará un cuadro de texto sobre la celda B3. Cuando B3 cambia de tamaño, el cuadro de texto también lo es.
0 para la respuesta № 2
Cuando copia y pega un cuadro de texto, Excel colocaráel nuevo cuadro de texto sobre la celda seleccionada actualmente. De este modo, puede lograrlo fácilmente utilizando los comandos de copiar y pegar de VBA. Esto puede ser particularmente útil si va a utilizar muchos cuadros de texto muy similares, ya que está creando efectivamente una plantilla de cuadro de texto.