Solución:
No necesita una API para esto, puede usar algo como:
Sub BringXLToFront()
AppActivate Application.Caption
End Sub
los AppActivate()
El método en VBA toma un argumento de cadena y se activará (es decir, llevarlo al frente) cualquier ventana que contenga eso exacto cuerda.
Sin embargo, es más específico para su pregunta: debe comprender un poco más cómo funcionan las API en VBA; si está utilizando un sistema x64, debe usar la compilación condicional y declarar la función API como segura para punteros mediante el uso de PtrSafe
palabra clave y la LongPtr
tipo de datos:
#If Win64 Then
Private Declare PtrSafe Function SetForegroundWindow Lib "user32" _
(ByVal hWnd As LongPtr) As LongPtr
#Else
Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hWnd As Long) As Long
#End If
Encontré la respuesta a lo que intenté hacer después de investigar un poco más.
Esto traerá la hoja de trabajo que especifique al frente.
Public Declare Function SetForegroundWindow _
Lib "user32" (ByVal hwnd As Long) As Long
Public Sub Bring_to_front()
Dim setFocus As Long
ThisWorkbook.Worksheets("Sheet1").Activate
setfocus = SetForegroundWindow(Application.hwnd)
End Sub
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)