La manera más rápida es conocer el tamaño de la pantalla actual.
Para esto se puede usar el objeto SCREEN. Este objeto tiene algunas propiedades que son importantes para conocer la resolucion de la pantalla y así posicionar, centrar y redimensionar un formulario en tiempo de ejecucion.
Screen.Width -- Devuelve el ancho de la pantalla
Screen.Height -- Devuelve el alto de la pantalla
Con esto se puede manejar todo un sistema de coordenadas para hacer lo que se quiera independientemente de la resolución. Una de las cosas que hay que tener en cuenta es que las coordenadas y medidas que devuelve son basadas en el sistema de coordenadas actual. Si uno mira en las propiedades del form encontrará una propiedad llamada "ScaleMode". Normalmente esta está establecida en "twips".
El twip es una medida independiente... 1440 twips son una pulgada o 567 twips entran en un centimetro tomando como referencia el sistema de coordenadas de una impresora.
Esto hay que convertirlo a pixeles para saber la resolucion actual. Entonces, o se cambia "ScaleMode" a pixel, o se lo deja como está en twips y se llama a la siguiente función que hice para esto:
Public Function resPantalla() As String
Dim X As Single
Dim Y As Single
X = Screen.TwipsPerPixelX
Y = Screen.TwipsPerPixelY
X = Screen.Width / X
Y = Screen.Height / Y
resPantalla = X & "x" & Y
End Function
Esta función devuenve un string con la resolucion actual. Por alguna razón no funciona bien si se cambia la resolucion actual. Siempre devuelve la resolución de la primera vez que se invocó. Por ejemplo: si tengo 800x600 funciona bien, pero si cambio la resolución a 1024x768 y ejecuto el código nuevamente me devuelve 800x600. O sea, detecta bien, pero si se la cambia a veces no actualiza el cambio. Esto pasaba en W98, en XP no me acuerdo de haberlo probado.
Espero que te sirva, cualquier duda avisá.
Salu2.