Formulario a pantalla completa.

TEngo un formulario hecho en VBA, necesito que al abrir el documento de Word se abra el formulario y éste ocupe toda la pantalla, ¿es decir que aparezca a pantalla completa pero llegando los extremos del formulario a los límites de la pantalla para que la ocupe toda?
Me han dicho que en VB se puede utilizar éste código:
Pero en VBA no funciona, alguien me puede asesorar sobre el tema.
========
Private Sub Formulario_Initialize()
Me.Height = Screen.Height / 2
Me.Width = Screen.Width / 2
Me.Top = (Screen.Height / 2) - (Me.Height) / 2
Me.Left = (Screen.Width / 2) - (Me.Left) / 2
End Sub
=========
No funciona en VBA, creo que es porque no reconoce la palabra Screen.
¿Creéis qué hay otro método función que la pudiera sustituir?
Respuesta
1
Tal vez te pueda ayudar.
El código que te dieron en realidad no hace nada de lo que tu quieres, ese código lo que hace es darle al formulario la mitad del tamaño de la pantalla y colocarlo en una intentar abajo y a la derecha del centro de la pantalla o algo así. Y si, en realidad VBA no reconoce el objeto screen, pero creo que hay una forma un poco "rustica" de hacer lo que quieres, y consiste en maximizar Word y darle al formulario las dimensiones de este, es decir:
Private Sub UserForm_Initialize()
Application.WindowState = wdWindowStateMaximize '(Maximiza word)
UserForm1.Width = Application.Width '(da el ancho de word al form)
UserForm1.Height = Application.Height '(da el alto de word al form)
'las dos ultimas lineas colocan al form en la posicion 0,0 es decir en la esquina superior izquierda de la pantalla)
UserForm1.Left = 0
UserForm1.Top = 0
End Sub
Espero que te sirva, si necesitas más información, no dudes en contactarme y si es suficiente te agradeceré que finalices la pregunta.
Suerte! :-)
Por fin alguien me contesta, no sabes cuanto te lo agradezco, he probado tu código y efectivamente hace lo que yo quería, pero si no es mucho pedir ya puestos, me harías un gran favor si me ayudaras a modificar el código que me has aportado para que al abrirse la pantalla completa también lo hagan los objetos de su interior, hasta ahora lo hago utilizando un ScrollBar y cuando le pulso lo agrando para ajustarlo a la ventana completa con el siguiente código, pero sería perfecto que me lo hiciera utilizando el código tuyo, ¿crees qué es posible?
Utilizo el siguiente 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 - 5
End If
If Me.Top > 0 Then
Me.Top = Me.Top - 5
End If
End Sub
Ante todo muchísimas gracias por tu ayuda, y tranquilo que no olvidaré finalizar la pregunta.-
Perfecto, eso es justo lo que necesito, muchachísimas gracias por tu ayuda.
No sé si entendí bien lo que quieres, pero veamos...
Si tu lo que quieres es que cuando el formulario se "Maximize", lo controles también se agranden de forma que que sus tamaños sean proporcionales al userform, lo que se me ocurre es lo siguiente:
Declara dos variables generales AnIni y AnFin como single.
En el userform_initialize(), coloca el código que te envíe, y en las variables almacena el ancho del formulario, antes y después de "Maximizarlo".
» AnIni = UserForm1.Width
UserForm1.Width = Application.Width
UserForm1.Height = Application.Height
UserForm1.Left = 0
UserForm1.Top = 0
» AnFin = UserForm1.Width
y justo abajo, pon la siguiente linea:
UserForm1.Zoom = ((AnIni / AnFin) + 1) * 100
Con esto estamos definiendo el porcentaje que aumento el formulario cuando se "maximizo" y ese mismo porcentaje es el zoom que debe hacer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas