Formularios a pantalla completa

15/02/2004 - 23:35 por Pol3 | Informe spam
Hola, Tengo una duda que necesito la ayuda de algún experto, la
pregunta es la siguiente por si me pueden ayudar:
¿es posible crear código con VBA para que cuando se abra un documento
el cual contiene un formulario creado con VBA, (UserForm), éste se amplie a
pantalla completa, (detectando la resolución de la pantalla y el tamaño)?

Por ahora utilizo para desplegar el formulario el siguiente código:
'He colocado un ScrollBar y en el evento Change le pongo este código:
Private Sub ScrollBar_Change()
Me.Zoom = ScrollBar.Value
Me.Width = StartW * (ScrollBar.Value / 100)
Me.Height = StartH * (ScrollBar.Value / 100)
LabZoom.Caption = ScrollBar.Value & "%"
If Me.Left > 0 Then
Me.Left = Me.Left - 3
End If
If Me.Top > 0 Then
Me.Top = Me.Top - 3
End If
'también hay que declarar las variables en declaración general de
variables.
End Sub

'En el evento activate le pongo el siguiente código:
Private Sub UserForm_Activate()
StartW = Me.Width
StartH = Me.Height
Ver_Datos_Unidad
End Sub

- Con esto consigo agrandar el formulario, he podido conseguir de la
ayuda de VBA el código para detectar la resolución de la pantalla, que es el
siguiente:
En este ejemplo se muestra la resolución de pantalla actual; por
ejemplo, "1024 x 768".

Dim lngHorizontal As Long
Dim lngVertical As Long

lngHorizontal = System.HorizontalResolution
lngVertical = System.VerticalResolution
MsgBox "Resolution = " & lngHorizontal & " x " & lngVertical


¿Me podriais ayudar a adaptarlo para que al abrir el formulario
detecte la resolución y el formulario aplique el zoom necesario para que se
adapte a pantalla completa?
He comprobado que en mi monitor de 17 pulgadas y resolución 1024 x
768, el formulario ocupa la pantalla con un zoom de 110 % y en un monitor de
15 pulgadas y la misma resolución necesita un 90 %.
Gracias de antemano.
Un experto me ha dicho que en Visual Basic se puede hacer de la
siguiente forma, pero no me funciona en VBA:

Private Sub Formulario_Initialize()
Me.Height = screen.Height / 2
Me.Width = screen.Width / 2
Me.Top = (scren.Height / 2) - (Me.Height) / 2
Me.Left = (scren.Width / 2) - (Me.Left) / 2
End Sub
 

Leer las respuestas

#1 Fernando Arroyo
16/02/2004 - 11:50 | Informe spam
Stephen Bullen tiene hecho un ejemplo de formulario que se puede maximizar, minimizar, y muchas otras cosas:

http://www.bmsltd.co.uk/DLCount/DLC...ormFun.zip

Un saludo.


Fernando Arroyo
MS MVP - Excel


"Pol3" escribió en el mensaje news:upYs$
Hola, Tengo una duda que necesito la ayuda de algún experto, la
pregunta es la siguiente por si me pueden ayudar:
¿es posible crear código con VBA para que cuando se abra un documento
el cual contiene un formulario creado con VBA, (UserForm), éste se amplie a
pantalla completa, (detectando la resolución de la pantalla y el tamaño)?

Por ahora utilizo para desplegar el formulario el siguiente código:
'He colocado un ScrollBar y en el evento Change le pongo este código:
Private Sub ScrollBar_Change()
Me.Zoom = ScrollBar.Value
Me.Width = StartW * (ScrollBar.Value / 100)
Me.Height = StartH * (ScrollBar.Value / 100)
LabZoom.Caption = ScrollBar.Value & "%"
If Me.Left > 0 Then
Me.Left = Me.Left - 3
End If
If Me.Top > 0 Then
Me.Top = Me.Top - 3
End If
'también hay que declarar las variables en declaración general de
variables.
End Sub

'En el evento activate le pongo el siguiente código:
Private Sub UserForm_Activate()
StartW = Me.Width
StartH = Me.Height
Ver_Datos_Unidad
End Sub

- Con esto consigo agrandar el formulario, he podido conseguir de la
ayuda de VBA el código para detectar la resolución de la pantalla, que es el
siguiente:
En este ejemplo se muestra la resolución de pantalla actual; por
ejemplo, "1024 x 768".

Dim lngHorizontal As Long
Dim lngVertical As Long

lngHorizontal = System.HorizontalResolution
lngVertical = System.VerticalResolution
MsgBox "Resolution = " & lngHorizontal & " x " & lngVertical


¿Me podriais ayudar a adaptarlo para que al abrir el formulario
detecte la resolución y el formulario aplique el zoom necesario para que se
adapte a pantalla completa?
He comprobado que en mi monitor de 17 pulgadas y resolución 1024 x
768, el formulario ocupa la pantalla con un zoom de 110 % y en un monitor de
15 pulgadas y la misma resolución necesita un 90 %.
Gracias de antemano.
Un experto me ha dicho que en Visual Basic se puede hacer de la
siguiente forma, pero no me funciona en VBA:

Private Sub Formulario_Initialize()
Me.Height = screen.Height / 2
Me.Width = screen.Width / 2
Me.Top = (scren.Height / 2) - (Me.Height) / 2
Me.Left = (scren.Width / 2) - (Me.Left) / 2
End Sub



Preguntas similares