HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
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
Als Antwort auf diesen Beitrag
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
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.