HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: Userform, die sich wie ein normales Fenster verhält?

RPP63
12.05.2026 10:58:08
Nicht ganz ernst gemeint
RPP63
12.05.2026 11:15:48
Mal als Clip
Marc
12.05.2026 12:27:16
AW: Nicht ganz ernst gemeint
Sumbu
12.05.2026 14:21:51
AW: Nicht ganz ernst gemeint
Marc
13.05.2026 02:15:28
AW: Nicht ganz ernst gemeint
Case
12.05.2026 15:47:06
Eins gleich vorweg -...
Sumbu
13.05.2026 03:52:03
AW: Eins gleich vorweg -...
volti
13.05.2026 08:21:32
AW: Eins gleich vorweg -...
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
12.05.2026 04:52:34
Userform, die sich wie ein normales Fenster verhält?
Hallo,

ich hätte gerne eine Userform, die sich wie ein normales Fenster verhält. Also die skalierbar ist, sich maximieren und minimieren lässt. Leider habe ich selbst nicht wirklich Ahnung davon, wie man die API einbindet und überwacht, deshalb habe ich versucht das ganze via KI zu lösen. Es hat sich allerdings herausgestellt, dass die KI zwar ständig Lösungen anbietet, keine davon aber auch nur ansatzweise lauffähig ist, bzw. wenn sie läuft dann ist sie nicht skalierbar^^

Ich hab mal das letzte Angebot der KI in ein File gepackt, und hier hochgeladen. Wenn jemand eine Idee hat wie man das lösen/debuggen kann, würde ich mich sehr freuen.

Liebe Grüße
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
12.05.2026 04:53:55
AW: Userform, die sich wie ein normales Fenster verhält?
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Marc
12.05.2026 06:33:10
AW: Userform, die sich wie ein normales Fenster verhält?
Ich muss sagen ich habe mich von der skalierbaren UserForm verabschiedet, hatte das auch irgendwann mal vor.
Aber da du dann auch wirklich jedes Element in der Userform mit bearbeiten musst und das teils zu absurden Ergebnissen führt, bin ich dazu über gegangen dem User nur 3 mögliche Auflösungen/Größen an zu bieten.

Und meine Ergebnisse, was die User möchten, zeigen, dass sie tatsächlich zu 90% nur eine Größe nutzen, der Rest nur Spielerei ist.
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
12.05.2026 06:42:12
AW: Userform, die sich wie ein normales Fenster verhält?
Hallo Marc,

ich hab bis jetzt auch keine so guten Erfahrungen mit Einbeziehung der API gemacht, von daher klingt das einleuchtend, was du sagst.

Danke erstmal
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
snb
12.05.2026 09:36:29
AW: Userform, die sich wie ein normales Fenster verhält?
Aber, wozu ? fragt sich snb.
Wenn das Application invisible ist, sieht der User nur das Userform.
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
12.05.2026 12:56:16
AW: Userform, die sich wie ein normales Fenster verhält?
snb,

hast ja recht mit Deiner Frage. Wär halt ein Nice-to-have, und ich hatte gehofft dabei bissel was über die API-Einbindung zu lernen. Bisher hatte ich nur mal eine Listbox, die man mit dem Mausrad scrollen konnte, und das hat nicht richtig funktioniert.
Grüße
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Der Steuerfuzzi
12.05.2026 10:26:27
AW: Userform, die sich wie ein normales Fenster verhält?
Hallo,

das skalieren ist mit API absolut kein Problem. Da gibt es im Netz ganz viele Anleitungen:
https://www.vbasteleien.de/viewtopic.php?t=573
https://www.teachexcel.com/excel-tutorial/2027/resizable-userform


Das Problem sind die ganzen Steuerelemente, denn die werden nicht skaliert, dafür musst Du dann auch noch sorgen, indem Du die Position und/oder Größe der Steuerelemente, nachdem skaliert wurde, anpasst. Das ist je nach Aufbau der Userform ziemlich aufwendig und muss jedes mal angepasst werden, wenn sich die Userform ändert:
https://exceloffthegrid.com/resize-a-userform-with-vba-or-windows-api/

Grüße
Michael

Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Marc
12.05.2026 12:31:03
AW: Userform, die sich wie ein normales Fenster verhält?
Ja die Steuerelemente haben mich ,weil ich da auf Grund der Größe des Programms und der Verschiedenartigsten Nutzung, mit mehreren Hundert dazu gebracht die Skalierung auf zu geben.
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
RPP63
12.05.2026 10:58:08
Nicht ganz ernst gemeint
Moin!
Ins UserForm kommen 2 CommandButton
Mit dem einen skaliere ich (das UF incl. aller Controls) auf +10 % (auch mehrfach).
der andere verkleinert
Private Sub CommandButton1_Click()

With Me
.Height = .Height * 1.1
.Width = .Width * 1.1
.Zoom = .Zoom * 1.1
End With
End Sub

Private Sub CommandButton2_Click()
With Me
.Height = .Height / 1.1
.Width = .Width / 1.1
.Zoom = .Zoom / 1.1
End With
End Sub

Gruß Ralf
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
RPP63
12.05.2026 11:15:48
Mal als Clip
Ich habs mal als Kurzvideo auf Youtube hochgeladen:
https://youtu.be/j5mNq4tUyek
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Marc
12.05.2026 12:27:16
AW: Nicht ganz ernst gemeint
Aber damit verkleinerst du nur die UserForm
nicht die darin enthaltenen Elemente... das ist unter Umständen ja auch gewünscht..

dazu muss man ja schauen, wird in höhe und breite verändert, oder nur in höhe oder nur in breite ...
Welche Elemente brauchen die gleiche Breite um zu funktionieren, welche können bis zu einem bestimmten grad auch angepasst werden (wie weit ist dann recht individuell)
die gleiche bei der Höhe ?

ab wann soll dann ein Scrollbar auftauchen...

zudem ist deine Version (ja nicht ganz ernst gemeint) nicht dynamisch sondern vom User abhängig ^^
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
12.05.2026 14:21:51
AW: Nicht ganz ernst gemeint
Hallo Marc, hallo Ralf

insofern nicht ganz ernst gemeint, stimmt schon, da ich das tatsächlich nicht wirklich brauche. Mich hätte vor allem die API-Einbindung interessiert, aber das ist anscheinend sehr kompliziert und aufwändig und lohnt sich wohl nicht, weil zu buggy. Ich hab auf deinen Vorschlag Ralph mal ein paar Zeilen geschrieben, wie ich das evt. machen würde, aber ernsthaft würde ich den Code so nicht verwenden. Hier mal ein File zur allgemeinen Belustigung: Die Userform lässt sich tatsächlich frei skalieren, wenn man die Maustaste in der unteren rechten Ecke der Userform gedrückt hält. Viel Spaß,

https://www.herber.de/bbs/user/180705.xlsm

und Danke Euch allen.
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Marc
13.05.2026 02:15:28
AW: Nicht ganz ernst gemeint
Bei mir bewegt sich da tatsächlich leider gar nichts..

und durch Nutzung eines Label ist es wieder nicht so wirklich API
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
daniel
12.05.2026 14:21:09
AW: Userform, die sich wie ein normales Fenster verhält?
die frage wäre, was genau du erreichen willst:
- Platz schaffen für mehr Inhalte, wobei die Elemente ihre Größe behalten
- die Userform als ganzes skalieren, damit sie z.B. auf Bildschirmen mit hoher Pixeldichte nicht so klein erscheint
- die Userfom einfach nur klein machen, damit sie nicht im Weg ist, wenn mit dem Excelblatt gearbeitet werden muss, aber immer noch einfach erreichbar?

Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
12.05.2026 14:34:18
AW: Userform, die sich wie ein normales Fenster verhält?
Hallo Daniel,

Ich wollte ein bisschen die API-Einbindung trainieren, aber daran haben sich anscheinend schon mehrere Leute die Zähne ausgebissen. Hier im konkreten Fall wäre es mir wichtig gewesen Die Userform immer möglichst groß zu halten, weil dadurch möglichst alles ohne Scrollen zu sehen ist. Aber wenn man aus einer anderen Anwendung etwas abschreiben will, eine Liste z.b. die nur als PDF vorliegt, wäre es schon gut, wenn man sie kleiner machen, und rumschieben kann.

Aber das API-Thema hat sich wohl erledigt, mit VBA geht es auch, wobei da halt dann der gewohnte Steuerelementecharakter fehlt, was den Benutzer verwirren könnte.

Dank und liebe Grüße
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
daniel
12.05.2026 14:36:34
AW: Userform, die sich wie ein normales Fenster verhält?
Hi
um die Größe einer Userform im laufenden Betrieb zu ändern, brauchst du kein API.
das geht auch über die normalen Events (MouseUp, -Down, -Move)

hier mal ein Beispielcode, wie du die Fläche einer Userform per Maus verändern kannst.
zum Verändern der Größe musst du den rechten oder unteren Rand anklicken und das Fenster auf die Größe ziehen:
den sensitiven Bereich stellst du in den IFs im MouseDown ein.

Option Explicit

Dim checkX As Boolean
Dim CheckY As Boolean
Dim x0 As Single
Dim y0 As Single

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
If X > Me.Width - 30 Then
checkX = True
x0 = Me.Width - X
End If
If Y > Me.Height - 50 Then
CheckY = True
y0 = Me.Height - Y
End If
End If
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If checkX Then Me.Width = X + x0
If CheckY Then Me.Height = Y + y0
End Sub

Private Sub UserForm_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
checkX = False
CheckY = False
End Sub


zum Mini- und Maximieren würde ich auch einfache Commandbuttons verwenden, deren Makros dann die Width- und Height-Werte der Userform entsprechend einstellen.
Wichtig ist nur, dass du diese oben links in der Userform platzierst und beim Minimieren die Userform noch mindestens so groß lässt, dass zumindest der Maximieren-Button noch sichtbar ist.
ja, das sieht nicht so schön aus wie ein richtiges Fenster mit den Buttons in der Titelzeile, aber es funktioniert und kann von jedem Anfänger programmiert werden.
Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
12.05.2026 14:41:23
AW: Userform, die sich wie ein normales Fenster verhält?
Hallo Daniel,

Vielen Dank, aber hatte tatsächlich grade etwas ähnliches gepostet:

https://www.herber.de/bbs/user/180705.xlsm

So kann man sie skalieren wenn man in der unteren rechten Bildschirmecke die Maus gedrückt hält. Allerdings scheint das am Anfang nur zu ffunktionieren, wenn man sie größer zieht.

Liebe Grüße

Das Problem ist wohl gelöst denke ich.
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
daniel
12.05.2026 15:31:58
AW: Userform, die sich wie ein normales Fenster verhält?
Hi
bei mir funktioniert dein Marko nicht.
wenn du mit der Maus über ein Steuerlement fährst, dann läuft das MouseMove des Steuerelements, aber nicht das MouseMove der Userform!
das MM der Userform läuft nur, wenn du über die leere Userformfläche fährst.
du brauchst also MouseMove des Buttons, musst hierbei aber beachten, dass der wieder sein eigenes Koordinatensystem hat, welches bei der linken oberen Ecke des Buttons seinen 0-Punkt hat.
bei den Randsensitivitäten musst du berücksichtigen, dass der 0-Punkt der Koordinaten in der linken oberen Ecke der nutzbaren Diagrammfläche liegt, .Height und .Width jedoch inklusive der Rahmen und Titelleiste sind.
Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
volti
12.05.2026 18:31:05
AW: Userform, die sich wie ein normales Fenster verhält?
Hallo,

das von Daniel angeführte "Problem" mit mehreren eigenen Koordinatensystemen je Control lässt sich, wenn man es brauchen sollte, relativ einfach lösen:

Man lenkt alle Moveaktivitäten der Controls und der Userform selbst in eine Sammel-Sub um und lässt dort die Position der Maus einheitlich für die Userform umrechnen.

Hier ein Beispiel:
Private Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr

Private Declare PtrSafe Function ScreenToClient Lib "user32" ( _
ByVal hwnd As LongPtr, lpPoint As POINTAPI) As Long
Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Type POINTAPI
X As Long
Y As Long
End Type

Dim PT As POINTAPI

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call GetMausPos
End Sub
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call GetMausPos
End Sub
Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call GetMausPos
End Sub

Private Sub GetMausPos()
GetCursorPos PT
ScreenToClient GetActiveWindow(), PT
Debug.Print PT.X, PT.Y
End Sub


Hierbei wird davon ausgegangen, dass die Userform zwingend das gerade aktive Fenster ist. Müsste eigentlich immer so sein. Wer auf Nummer sicher gehen will, kann sich ja vorher z.B. über FindWindow das UF-Handle in einer Modulvariablen hWndUF retten und verwenden.

Beim Massengeschäft mit sehr vielen Controls gäbe es auch noch die Möglichkeit, sich in die Messageschleife einzuhooken oder Klassenprogrammierung zu verwenden.
Aufwand/Nutzen selbst beurteilen.

Gruß
Karl-Heinz
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Daniel
12.05.2026 21:24:48
AW: Userform, die sich wie ein normales Fenster verhält?
Wäre es nicht noch einfacher, den .Top bzw .Left- Wert des Controls zum Y und X des MouseMove hinzu zu addieren, um damit das Y und X bezogen auf die Userform zu erhalten?
Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
volti
12.05.2026 23:31:55
AW: Userform, die sich wie ein normales Fenster verhält?
Hallo,

einfach ist relativ.

Für einen Nicht-API-Freund, der lieber mit reinem VBA programmiert, hast Du Recht, es geht auch ganz einfach mit der jeweiligen Addition.

Nun kommt es drauf an, was man möchte.

Die beiden Varianten liefern nicht das gleiche Ergebnis.
a) liefert Pixel
b) liefert Excel-Pixel

Wenn man das Ergebnis an einer Stelle haben möchte.....

Bei b muss man ggf. etwas mehr Schreibarbeit leisten oder an die Sammel-Sub-das Objekt mit übergeben
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)

Call GetMausPos(x, y)
End Sub
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
Call GetMausPos(CommandButton1.Left + x, CommandButton1.Top + y)
End Sub
Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
Call GetMausPos(ListBox1.Left + x, ListBox1.Top + y)
End Sub

Private Sub GetMausPos(ByVal x As Single, ByVal y As Single)
GetCursorPos PT
ScreenToClient GetActiveWindow(), PT
Debug.Print PT.x, PT.y, x, y
End Sub


Gruß
KH
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
daniel
13.05.2026 09:44:38
AW: Userform, die sich wie ein normales Fenster verhält?
bei den API-Sachen frage ich mich immer, wo ich die Informationen herbekomme, um das zu schreiben.
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
volti
13.05.2026 10:06:10
AW: Userform, die sich wie ein normales Fenster verhält?
Nun,

ich habe meine Informationen aus einem 1200-Seiten dicken Windowsbuch 3.1 später Win95.

Naja, Spaß beiseite.
Ich programmiere schon seit 1980, also lange vor Excel. Da hat man so seine Routine, deshalb meinte ich ja auch - einfach ist relativ.
Heutzutage gucke ich eher in (m)einen API-Viewer und ins Internet. Aber wenn einem das grundlegende Windows-Handwerk fehlt ist die API in der Tat nicht leicht zu durchschauen.

Der Anfänger sollte eher alles mit Excel und VBA lösen. Du hast ja immer auch tolle Vorschläge.
Aber manche Dinge gehen eben nicht mit VBA und sind vielleicht auch nur "nice to have".

Gruß KH
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
daniel
13.05.2026 13:13:22
AW: Userform, die sich wie ein normales Fenster verhält?
also meine Definition von "einfach" ist eigentlich:
da kann man
- mit grundlegenden VBA-Kenntnissen (also die, die man braucht um überhaupt ein Makro zu schreiben)
- der F1-Taste (die offizielle und früher mit gelieferte Onleinhilfe)
- der Intellisense
- dem Makrorecorder
und gesundem Menschenverstand auch selber darauf kommen.

Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Alwin Weisangler
12.05.2026 15:50:41
AW: Userform, die sich wie ein normales Fenster verhält?
Hallo Miteinander,

Es ist sicherlich riesige Spielerei aber bitte schön:
Hier mal allerdings API-Funktionen nur VBA7 / 64 eingebaut mit Minimieren, Maximieren und rechts unten mit Maus anfassen und ziehen nach Bedarf.
Vielleicht hilft das ja schon.
https://www.herber.de/bbs/user/180707.xlsm

Gruß Uwe


Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Alwin Weisangler
13.05.2026 16:34:31
AW: Userform, die sich wie ein normales Fenster verhält?
Hmm,

Das vom TO würde ich gern mal hier noch zurücklassen:
"Wär halt ein Nice-to-have, und ich hatte gehofft dabei bissel was über die API-Einbindung zu lernen."
Ansonsten noch schönen Feiertag.

Gruß Uwe
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Case
12.05.2026 15:47:06
Eins gleich vorweg -...
Moin, :-)

... das läuft nur in einer 64Bit-Umgebung (für alte Windows/Excel-Versionen kann/will ich es nicht testen/machen): ;-)
https://www.herber.de/bbs/user/180706.xlsb

Du brauchst eigentlich nur 3 API-Aufrufe/Funktionen: ;-)
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getwindowlongptra
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowlongptra
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-findwindowa

Das ist nur als "Spielwiese" gedacht. ;-)
Man kann - wenn man Lust hat - noch einiges "abfangen". Z. B. Max-Größe, Min-Größe, ScrollBar, und, und, und... ;-)

Servus
Case
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Sumbu
13.05.2026 03:52:03
AW: Eins gleich vorweg -...
Hallo,

es scheint ich habe einen Nerv getroffen, angesichts der vielen Antworten, die ich hier bekomme. Aber das Thema gibt meiner Meiner Meinung nach nicht mehr viel her, bzw, das was es hergibt, ist too much iwie. Ich habe von Alwin Weisangler und von Case Excel-Files zugeschickt bekommen, die versuchen über die API die Userform skalierbar zu machen. Bei beiden ergibt das einen Laufzeitfehler '453': DLL-Einsprungpunkt GetWindowLongPtrA in user32 nicht gefunden. Der Fehler mag daran liegen, dass ich Windows 11 mit Excel 2010 nutze. Aber das zeigt halt auch, wie tricky das Sujet ist, und ich bräuchte es wenn dann in einer Version, die auf allen Excel-Versionen ab 2010 läuft und auf allen Maschinen und Betriebssysthemen. Deswegen: Ich glaub das bringt hier nichts mehr. Bitte keine Antworten mehr, der Thread ist beendet.

Trotzdem vielen Dank an alle, die reinen VBA-Lösungen werd ich mir bei Gelegenheit nochmal genauer ansehen.

Liebe Grüße
Forumbeitrag
Excel-Version des Fragestellers:
2010
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
volti
13.05.2026 08:21:32
AW: Eins gleich vorweg -...
Hallo Uwe und Case,

m.E. sollte man für Set/GetWindowlong immer den 32/64 Bit-Schalter einsetzen.

Wo ist das Problem. Das hat auch mit altem Excel (VBA6) nichts zu tun, denn hier geht es nur um die Entscheidung 32/64 Bit im VBA7. Der Code an sich kann ja gleich bleiben.

Wie man in den Foren sieht, sind sehr viele mit 32Bit-Excel unterwegs.

#If Win64 Then

Private Declare PtrSafe Function GetWindowLongPtr Lib "user32" Alias "GetWindowLongPtrA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As LongPtr
Private Declare PtrSafe Function SetWindowLongPtr Lib "user32" Alias "SetWindowLongPtrA" (ByVal hWnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
#Else
Private Declare PtrSafe Function GetWindowLongPtr Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As LongPtr
Private Declare PtrSafe Function SetWindowLongPtr Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
#End If


Mit Casens Lösung wäre der TE sicher glücklich geworden. Funktioniert ja tadellos.

Gruß KH