RE:Procedimiento para agrandar/dismunir controles
No se si este sea el metodo más apropiado pero puede servirte para empezar.
Supongo que cuando hablas de ventana te refieres a un Form.
Ensaya cambiando las propiedades height y width.
El siguienete ejemplo te puede servi, te advierto que el codigo no esta probado, lo escribo directamente a la vez que te envio este mensaje, es posible que tenga errores
Supongamos que deseas que tu formulario cambie de tamaño ante un evento command click entonces el codigo seria asi:
Sub Command1_click()
altura=Form1.height
ancho=Form1.width
Form1.height=altura/Micambioaltura ' Cuanto es el cambio lo defines tu
Form1..width=altura/Micambioancho ' Cuanto es el cambio lo defines tu
'Ahora haces que todos los controles de tu formulario cambien proporcionalmente asi:
Dim control
For each control in form1
control.height=control.height/micambioaltura
control.width=control.Width/ Micambioancho
next control
end sub
Recuerda que si estas trabajando con Option Explicit debes declarar todas las variables que vas a usar. Si por algun motivo se genera un error en la sentencia For Each basta conque repitas la operacion para cada control que tengas en el formulario, por ejemplo si has creado un aaray de controles llamado Label1 que consta de 5 controles (Label1(0) hasta Label1(4)) entonces la declaracion del evento seria ssi
Dim control
For each control in label1
las mismas instrucciones del ejemplo anterio
next control
y asi para array de controles o para cada control si no has creado ningun array
Disculpa los errores al escribir, espero que te ayude
Con gusto