Ventana de excel siempre visible

Me gustaria saber si es posible mantener una ventana de excel o word siempre visible por encima de cualquier programa o aplicacion que tenga abierta.
1

1 respuesta

Respuesta
1
Claro que es posible. El metodo se llama "Always on top" (primer resultado).
Debes hacer un módulo de macros en tu archivo, y colocas este código:
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Const TOPMOST_FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
y, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Sub Encima_de_todo()
 MakeNormal (Application.hwnd)
End Sub
Sub Volver_a_Modo_Normal()
MakeTopMost (Application.hwnd)
End Sub
Public Sub MakeNormal(Handle As Long)
    '// Replaces the window in the ZOrder
    SetWindowPos Handle, HWND_NOTOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
End Sub
Public Sub MakeTopMost(Handle As Long)
    '// Sets the window in the ZOrder
    SetWindowPos Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
End Sub
Hola!!! Gracias por tu respuesta!! Y perdona mi ignorancia pero lo he intentado de mil maneras y la verdad............no se como crear un modulo de macros!!!!!!  Seguro que es muy sencillo pero no lo consigo :S
Te agradeceria una aclaración ya que en mi trabajo utilizo dos pantallas y dos programas a la vez y necesito tener siempre visible la ventana del Word para poder anotar cosas y hacer un "copiar y pegar" continuamente. He de hacerlo muy rapido y me retrasa muchisimo el echo de que cada vez que "pego" me desaparezca el Word ..... :S:S:S
Ahora no te sabria decir que version de Word es pero el sistema operativo es el 98, asi hazte una idea de lo antiguo que es :(
Gracias !!
Un saludo!
'Checa estos dos videos:
'http://www.zshare.net/download/7873218931930554/
'http://www.zshare.net/download/78732217df6faff4/
'
'TOMA ESTAS MACROS.
'HICE UNA MODIFICACIÓN PARA QUE FUNCIONE EN WORD.
Public hwnd_Ventana As Long
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Const TOPMOST_FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Private Declare Function GetForegroundWindow Lib "User32" () As Long
Private Declare Function SetWindowPos Lib "User32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
y, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Sub Volver_a_Modo_Normal()
 MakeNormal (hwnd_Ventana)
End Sub
Sub Encima_de_todo()
hwnd_Ventana = GetForegroundWindow()
MakeTopMost (hwnd_Ventana)
End Sub
Public Sub MakeNormal(Handle As Long)
    '// Replaces the window in the ZOrder
    SetWindowPos Handle, HWND_NOTOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
End Sub
Public Sub MakeTopMost(Handle As Long)
    '// Sets the window in the ZOrder
    SetWindowPos Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
End Sub
Muchisimas gracias!!! Gracias por tan fantástica explicación y gracias por el tiempo que te has tomado!! Esta semana tengo fiesta así que tendré que esperar para probarlo en el word 97 pero siguiendo tus pasos estoy seguro de que serà facilísimo.
GRACIAS DE NUEVO!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas