¿Se puede cambiar el tamaño de todos los controles de un formulario a la vez mediante VBA?

Lo que quería es si es posible cambiar mediante código por ejemplo el ancho de varios controles a la vez. Yo si pongo el siguiente código me funciona sin problema para un control:

Forms("PEDIDOS").Controls("comando14").Width = 500

Pero si pongo esta instrucción (con intención de que me los ponga todos los controles al mismo ancho) da error:

Forms("PEDIDOS").Controls("*").Width = 500

¿Se puede también cambiar ancho y alto y tipo de letra por ejemplo a la vez? Quiero decir usando el and ¿Cómo?

2 Respuestas

Respuesta
2

Puedes hacerlo en "bloque", pero usando un bucle. No puedes usar caracteres comodín para hacer referencia a objetos.

Tampoco puedes usar AND para encadenar propiedades, tienes que ir una a una.

Una forma genérica de modificar las propiedades de los controles sería:

Dim ctl As Control
For Each ctl In Me.Controls
ctl.Width = 500
ctl.ForeColor = vbRed
Next ctl

Si quieres "afinar" más, puedes limitar el tipo de controles sobre los que actuar (por ejemplo sobre cuadros de texto y combinados):

Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType=acTextBox Or ctl.ControlType=acComboBox Then
ctl.Width = 500
ctl.ForeColor = vbRed
End If
Next ctl

Y aún más, solo sobre los cuadros de texto que terminen en Ob:

Dim ctl As Control
For Each ctl In Me.Controls
  If ctl.ControlType = acTextBox Then
    If ctl.Name = "intervalo" Then
      ctl.Width = 500
      ctl.ForeColor = vbRed
    End If
  End If
Next ctl

Posibilidades tienes muchas....

Añado un detalle: los códigos anteriores te servirán si quieres modificar controles del formulario en el que tienes el código.

Si quieres desde un formulario modificar los controles de otro, primero debes asegurarte de que está abierto y si no abrirlo, y luego cambiar Me. Controls por Forms("NombreFormulario"). Controls

Respuesta
1

Hay una forma general de redimensionar todos los controles y tamaño de la fuente de un formulario para que se ajuste a la resolución, esto se hace mediante llamadas a las API, es código avanzado si quiere conocer más en detalle puede solicitar un ejemplo a [email protected].

Exponer aquí el ejemplo sería demasiado extenso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas