Enviar hoja activa al monitor secundario con vba

He creado una segunda ventana de mi hoja excel con NewWindow, y lo que pretendo es mediante código VBA enviarla al monitor secundario, lo he intentado con Application.SendKeys "^({ESC}+{RIGHT})", pero no lo consigo, con "^{ESC}" estoy tratando de simular la pulsación de la tecla "windows", lo leí en algún lugar, y no sé si será así exactamente?

2 respuestas

Respuesta
Respuesta

La forma en que estás intentando enviar la ventana a la pantalla secundaria no es la más adecuada. En su lugar, puedes utilizar la función `SetWindowPos` de la API de Windows para mover la ventana a la pantalla deseada.

Aquí te dejo un ejemplo de cómo puedes hacerlo en VBA:
```
Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Sub MoverVentana()
Dim hWnd As Long
hWnd = Application.Hwnd
' Obtener el número de pantalla actual
Dim pantallaActual As Long
pantallaActual = GetSystemMetrics(80)
' Establecer la pantalla destino (en este caso, la pantalla secundaria)
Dim pantallaDestino As Long
PantallaDestino = 2 ' 1 para la pantalla principal, 2 para la pantalla secundaria
' Mover la ventana a la pantalla destino
SetWindowPos hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
SetWindowPos hWnd, 0, pantallaDestino * 1920, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
' Restablecer la ventana a su tamaño y posición original
SetWindowPos hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub
```
Recuerda que debes declarar la función `SetWindowPos` en el módulo de VBA y que debes ajustar los valores de `pantallaDestino` y `SWP_NOMOVE` según tus necesidades.

Esto responde Meta IA de WhatsApp...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas