/ / ¿Cómo coloca un objeto de cuadro de texto sobre una celda específica al automatizar Excel? - excel, automatización

¿Cómo coloca un objeto de cuadro de texto sobre una celda específica al automatizar Excel? - excel, automatización

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 № 1

Si 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.