ich war schon mal hier vor Jahren unterwegs danach musste ich eine längere Pause einlegen.
Nun bin ich wieder zurück und muss feststellen VBA geht immer noch ;) bis auf einige Ausnahmen.
Problem: Userform wird immer auf dem Hauptbildschrim dargestellt - auch bei Surface was definitiv zu klein ist für das Formular.
Daher möchte ich beim start prüfen ob mehrere Bildschirme angeschlossen sind oder nicht. Wenn ja dann ob Hauptbildschirm ein Surface ist. Und wenn das auch ja ist dann auf ein anderes ändern (um dann bei schließen des Formulars wieder zurücksetzen).
Sicherlich geht das mit API, aber wie? So ähnlich habe ich es gedacht:
Option Explicit
' API-Deklaration
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN = 0 'Auflösung x
Private Const SM_CYSCREEN = 1 'Auflösung y
Private Const SM_CMONITORS = 80 'Anzahl Bildschirme
Dim intHauptMonitor As Integer
Private Sub Workbook_Open()
If GetSystemMetrics(SM_CMONITORS) > 1 Then
'If Hauptbildschirm=Surface then
intHauptMonitor '= Nummer der Surface um beim Schlißen wieder zurücksetzen
'Ändere Hauptbildschrim
'End if
End If
End Sub
Vielen Dank nochmals im Voraus!
Dominic