Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UserForm in Outlook mittig anzeigen

UserForm in Outlook mittig anzeigen
12.02.2024 23:42:14
Adrian
Hallo zusammen,

Ich hoffe hier evtl. Hilfe zu finden mit einem aktuellen VBA-Problem im Outlook.
Ich habe dort eine UserForm, welche ich gerne anzeigen möchte auf dem Bildschirm.
Die UserForm soll immer mittig dargestellt werden.
Egal, ob 1, 2, 3 oder 4 Monitore angeschlossen sind.
Dort, wo das Outlook-Fenster geöffnet ist, dort soll auch mittig die UserForm erscheinen - analog den Messagboxen.

Ich habe nun etliche Dinge schon ausprobiert.
Die Userform erscheint aber an unterschiedlichen Positionen, je nach Monitor (1, 2, 3 oder 4). Von oben her ist es immer gleich.
Beim ersten Monitor links von der Mitte
Beim zweiten Monitor eher mittig
Beim dritten Monitor rechts aussen - teilweise nicht mehr zu sehen

Kann mir da jemand einen Tip geben?

Mit folgenden Code habe ich zuletzt meine Versuche gemacht:

Private Sub UserForm_Initialize()
Dim olApp As Object
Dim sngLeft As Single, sngTop As Single
Dim olExplorer As Object
Dim olInspector As Object
Dim olWindow As Object

' Überprüfen, ob Outlook geöffnet ist
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
On Error GoTo 0

' Überprüfen, ob ein Explorer-Fenster geöffnet ist
If Not olApp Is Nothing Then
Set olExplorer = olApp.ActiveExplorer
If Not olExplorer Is Nothing Then
sngLeft = olExplorer.Left + (olExplorer.Width - Me.Width) / 2
sngTop = olExplorer.Top + (olExplorer.Height - Me.Height) / 2
End If
End If

' Überprüfen, ob ein Inspector-Fenster geöffnet ist
If sngLeft = 0 And sngTop = 0 Then
On Error Resume Next
Set olInspector = olApp.ActiveInspector
On Error GoTo 0
If Not olInspector Is Nothing Then
sngLeft = olInspector.Left + (olInspector.Width - Me.Width) / 2
sngTop = olInspector.Top + (olInspector.Height - Me.Height) / 2
End If
End If

' Wenn kein Explorer oder Inspector gefunden wurde, Fenster zentrieren basierend auf Outlook-Fenster
If sngLeft = 0 And sngTop = 0 Then
Set olWindow = olApp.ActiveWindow
If Not olWindow Is Nothing Then
sngLeft = olWindow.Left + (olWindow.Width - Me.Width) / 2
sngTop = olWindow.Top + (olWindow.Height - Me.Height) / 2
End If
End If

' Wenn kein gültiges Fenster gefunden wurde, verwenden Sie die Bildschirmmitte
If sngLeft = 0 And sngTop = 0 Then
sngLeft = (Application.Width - Me.Width) / 2
sngTop = (Application.Height - Me.Height) / 2
End If

' Position der UserForm festlegen
Me.Left = sngLeft
Me.Top = sngTop
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm in Outlook mittig anzeigen
13.02.2024 07:24:41
ede
Hallo Adrian,
am Beispiel einer Userform in Excel wird diese so mittig innerhalb der Excel-Applikation angezeigt:

sngLeft = Application.Left + Application.Width / 2 - Me.Width / 2
sngTop = Application.Top + Application.Height / 2 - Me.Height / 2
Me.Left = sngLeft
Me.Top = sngTop

Gruss
Ede
AW: UserForm in Outlook mittig anzeigen
13.02.2024 07:29:29
ede
falls nicht in der Userform schon gesetzt (wo von ich ausgegangen bin), dann bitte im Code vorher setzen :
Me.StartUpPosition = 0

gruss
ede
AW: UserForm in Outlook mittig anzeigen
13.02.2024 07:52:37
Adrian
Halle Ede,

Besten Dank für den Input.
Das ist korrekt. In Excel funktioniert es auch wunderbar.

So lange sich Outlook auf dem Hauptbildschirm befindet, klappt es
Sobald ich es auf einen anderen Bildschirm ziehe, wird es zickig.

Das festhalten der Position ausserhalb der Form hat in diesem Sinne keine Besserung gebracht.
Mit Excel funktioniert die Geschichte Wunderbar, auch bildschirmübergreifend.

Wennn ich die Applikationen ziemlich genau gleich positioniere kommt Outlook auf ein ganze anderes Ergebnis als Excel.
Anscheinend wir bei Outlook etwas anderes abgegriffen als die ganze Applikation, die Frage ist was?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige