Ich stehe vor folgendem Problem:
Ich habe eine VBA Arbeitsmappe erstellt, bei der beim öffnnen direkt die Userform erscheint und Excel im Hintergrund verschwindet. Ich möchte, dass es möglichst nach einem "echten Windowsprogramm" ausschaut, brauche aber excel zur Datenverarbeitung da ich mich in Visual Basic nicht mit Datenbankzugriffen etc auskenne.
Soweit funktioniert alles sehr gut und nach meinen Vorstellungen, der Endanwender sollte mit der originalen Exceltabelle nicht in berührung kommen.
Allerding ist mir aufgefallen, dass wenn ich "das Programm" geöffnet habe, es immer hinter allen momentan aktiven Fenstern verschwunden ist. Daraufhin habe ich mich auf die Suche gemacht nach einem Code der dies behebt und bin halbwegs fündig geworden.
Den Code den ich gefunden habe lässt meine Userform immer im Vordergrund erscheinen auch wenn ich z.b. den Windows Explorer öffne.
Könnte man den Code so anpassen dass er zwar beim start der "Anwendung" die Userform in den Vordergrund zwingt, aber danach hinter andere Fenster verschwindet wenn ich zum Beispiel den Windows Explorer öffne?
Hier der Code:
Option Explicit
Private Declare PtrSafe Function SetWindowPos Lib "user32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal hWndInsertAfter As LongPtr, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Declare PtrSafe Function FindWindowA Lib "user32.dll" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongPtr
Private Const HWND_TOPMOST As LongPtr = -1
Private Const SWP_NOSIZE As Long = &H1
Private Const SWP_NOMOVE As Long = &H2
Private Const GC_CLASSNAMEUSERFORM As String = "ThunderDFrame"
Private Sub UserForm_Activate()
Dim lngptrHwnd As LongPtr
lngptrHwnd = FindWindowA(GC_CLASSNAMEUSERFORM, Caption)
Call SetWindowPos(lngptrHwnd, HWND_TOPMOST, _
0&, 0&, 0&, 0&, SWP_NOMOVE Or SWP_NOSIZE)
End Sub
Da ich gerne was dazu lernen möchte, bitte ich euch die Änderung dann zu erläuterndamit ich den Code auch einigermaßen verstehe und ihn in Zukunft gegebenfalls selber anpassen kann je nach Bedürfnis.
Ich danke euch schon mal im vorraus!