Office: (Office 2019) VBA7, Declare Function FindWindow Lib

Helfe beim Thema VBA7, Declare Function FindWindow Lib in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Allerseits, Frage: Anpassung eines bereits Geschrieben Codes (Forum). Würde ich gern verwenden da es gut Passt. Quelle> VBA Beispiele Seite... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Leon2030, 2. Mai 2025 um 17:40 Uhr.

  1. Leon2030 Neuer User

    VBA7, Declare Function FindWindow Lib


    Hallo Allerseits,

    Frage:
    Anpassung eines bereits Geschrieben Codes (Forum).
    Würde ich gern verwenden da es gut Passt.

    Quelle> VBA Beispiele Seite Datei schließen - Hajo's Excelseiten
    Datei> Datei schließen02, (ggf. im Anhang)

    Problem:
    Eine Funktion im Code ist mit meinem Office nicht kompatibel.
    Vorgabe der Datei (Office 2010, 32-bit), mein (Office 2019, 64-bit)

    Ziel:
    Wie muss dies Umschrieben/Abändern werden, auf 64-bit?
    Diesen würde ich gerne weiter Verwenden in meinem Project.

    Könnte mir jemand Helfen den Code Anzupassen od. gibt es eine Alternative?

    Gruß Leon
     
  2. d'r Bastler
    d'r Bastler Erfahrener User
    Moin Leon!

    Versuch's mal so:
    Code:
    #If VBA7 Then
        Declare PtrSafe Function FindWindow Lib "user32" _
            Alias "FindWindowA" ( _
            ByVal lpClassName As String, _
            ByVal lpWindowName As String) As LongPtr
           
        Declare PtrSafe Function SetActiveWindow Lib "user32.dll" _
            (ByVal hwnd As LongPtr) As LongPtr
           
        Declare PtrSafe Function SetWindowPos Lib "user32" _
            (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
    #Else
        Declare Function FindWindow Lib "user32" _
            Alias "FindWindowA" ( _
            ByVal lpClassName As String, _
            ByVal lpWindowName As String) As Long
           
        Declare Function SetActiveWindow Lib "user32.dll" _
            (ByVal hwnd As Long) As Long
           
        Declare Function SetWindowPos Lib "user32" _
            (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
             ByVal x As Long, ByVal y As Long, _
             ByVal cx As Long, ByVal cy As Long, _
             ByVal wFlags As Long) As Long
    #End If
    
    Public Enum Parameter
        HWND_TOPMOST = -1
        SWP_NOSIZE = &H1
        SWP_NOMOVE = &H2
        SWP_NOACTIVATE = &H10
        SWP_SHOWWINDOW = &H40
    End Enum
    
    Viel Erfolg! und Grüße
     
  3. Leon2030 Neuer User
    hallo d`r Bastler,

    Danke für deine Rückmeldung.
    Ein teil des Codes nach #Else bis #End If würd Rot Angezeigt. Also Passt was nicht oder?
    Farblich Markieren im Code geht im Forum nicht...

    Code:
    #If VBA7 Then
       Declare PtrSafe Function FindWindow Lib "user32" _
           Alias "FindWindowA" ( _
           ByVal lpClassName As String, _
           ByVal lpWindowName As String) As LongPtr
     
       Declare PtrSafe Function SetActiveWindow Lib "user32.dll" _
           (ByVal hwnd As LongPtr) As LongPtr
     
       Declare PtrSafe Function SetWindowPos Lib "user32" _
           (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
    #Else
       Declare Function FindWindow Lib "user32" _
           Alias "FindWindowA" ( _
           ByVal lpClassName As String, _
           ByVal lpWindowName As String) As Long
     
       Declare Function SetActiveWindow Lib "user32.dll" _
           (ByVal hwnd As Long) As Long
     
       Declare Function SetWindowPos Lib "user32" _
           (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
            ByVal x As Long, ByVal y As Long, _
            ByVal cx As Long, ByVal cy As Long, _
            ByVal wFlags As Long) As Long
    #End If
    
    Public Enum Parameter
       HWND_TOPMOST = -1
       SWP_NOSIZE = &H1
       SWP_NOMOVE = &H2
       SWP_NOACTIVATE = &H10
       SWP_SHOWWINDOW = &H40
    End Enum
    Gruß Leon
     
    Zuletzt bearbeitet: 2. Mai 2025 um 18:32 Uhr
  4. d'r Bastler
    d'r Bastler Erfahrener User

    VBA7, Declare Function FindWindow Lib

    Tja, dann wirst Du die roten Zeilen wohl irgendwie benennen müssen. Sonst sehe ich keine Chance für weitere Hilfe.
    Die beiden Codes sind übrigens 1:1 gleich. Vielleicht versuchst Du es mit Zeilennrn. oder Auszügen der Stellen, wo's klemmt.

    Du hast nach Alternativen gefragt. Dazu müsstest Du mal genauer beschreiben, was Du denn vorhast.

    Grüße
     
  5. RPP63_neu
    RPP63_neu Erfahrener User
    Moin!
    Ich bin jetzt wahrlich kein API-Experte, weiß aber, dass die Rotfärbung in der Regel kein Problem darstellt.
    VBA7, Declare Function FindWindow Lib C25sppp.png

    Daher habe ich mal eine KI befragt.
    Ich will jetzt hier nicht den Roman einkopieren.
    Die Quintessenz ist:
    • Der Code ist in Ordnung.
    • Ich verwende ein 64-Bit-Office, daher wird der Else-Zweig der bedingten Kompilierung rot.
    • Auf die Funktionsfähigkeit des Codes hat das keinen Einfluss!

    Gruß Ralf
     
    Zuletzt bearbeitet: 3. Mai 2025 um 07:43 Uhr
    1 Person gefällt das.
  6. OilMax Erfahrener User
    Hallo Leon,

    Das ist völlig normal so. Ebenso ist die # If VBA7 Abfrage passend. Es gibt hier keine API Funktionen, welche auf Win64 geprüft werden müssen.
    Ansonsten überlege dir, ob es sinnvoll ist den Nutzern der Datei so was Nerviges zuzumuten.
    Ich würde dies eher als Aprilscherz (lustige Spielerei) betrachten.

    Gruß Uwe
     
  7. Leon2030 Neuer User
    Hallo d'r Bastler, Ralf u. Uwe,

    danke für die Antworten.
    Meine Unwissenheit, für mich Roter Text also passt was nichtVBA7, Declare Function FindWindow Lib :(

    Gruß Leon
     
  8. d'r Bastler
    d'r Bastler Erfahrener User

    VBA7, Declare Function FindWindow Lib

    Moin allerseits!

    Der entscheidende Hinweis kam von Ralf: Off64 = VBA7. Der else-Fall tritt auf Deinem System also garnicht ein. Dadurch könntest Du die Deklaration auch einfach auf diese Zeile (zzgl. der Enum Parameter) reduzieren:

    Code:
    Declare PtrSafe Function FindWindow Lib "user32" _
           Alias "FindWindowA" ( _
           ByVal lpClassName As String, _
           ByVal lpWindowName As String) As LongPtr
     
       Declare PtrSafe Function SetActiveWindow Lib "user32.dll" _
           (ByVal hwnd As LongPtr) As LongPtr
     
       Declare PtrSafe Function SetWindowPos Lib "user32" _
           (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
    Damit sollte das Rot verschwunden sein.

    Grüße!
     
Thema:

VBA7, Declare Function FindWindow Lib

Die Seite wird geladen...
  1. VBA7, Declare Function FindWindow Lib - Similar Threads - VBA7 Declare Function

  2. Function Sub und Makro

    in Microsoft Excel Hilfe
    Function Sub und Makro: Hallo zusammen. Ja, auch ich verzweifle gerade. Ich habe folgendes Problem: Da ich quasi ein Makro innerhalb einer Wenn-Dann-Bedingung starten möchte, muss ich den VBA Code in einer Function...
  3. Benutzerdefinierte Matrixfunktion (function) mit integrierten Arrayfunktionen

    in Microsoft Excel Hilfe
    Benutzerdefinierte Matrixfunktion (function) mit integrierten Arrayfunktionen: Hallo liebe Forumsmitglieder, nachdem ich nun schon einige Stunden nach einer Lösung im Netz und im Forum gesucht und selbst einiges probiert habe, wende ich mich nun mit folgender Frage an euch:...
  4. User Defined Functions (UDF) auch ohne VBA / Makro möglich ?

    in Microsoft Excel Hilfe
    User Defined Functions (UDF) auch ohne VBA / Makro möglich ?: Moin, Ich hab ne ganz einfache Frage, die sich wohl direkt mit Ja oder Nein beantworten läßt. Meine Tabelle ist 450 Zeilen hoch und 365 Spalten breit. *eek.gif* In jeder Zelle ist die gleiche...
  5. Solver aus function ohne worksheet-Berechnung?

    in Microsoft Excel Hilfe
    Solver aus function ohne worksheet-Berechnung?: hallo zusammen, nutze den solver für nichtlineare Fits, mit üblichen Weg der Berechnung der Abweichungsquadrate zwischen Soll- und Ist-Funktion, die via solver minimiert werden. Ganz einfaches...
  6. Fehler beim kompilieren sub oder Function nicht definiert

    in Microsoft Excel Hilfe
    Fehler beim kompilieren sub oder Function nicht definiert: Hallo zusammen erhalte Fehlermeldung: Fehler beim Kompilieren oder Function nicht definiert. übersehe ich etwas. (bin neuling) Bin dankbar für jede Unterstützung Private Sub cmdSpeichern_Click()...
  7. Aufruf einer function in excel mit =modul.1.name

    in Microsoft Excel Hilfe
    Aufruf einer function in excel mit =modul.1.name: Hallo zusammen, ich habe in VBA eine z.b. eine simple function, mit dem Namen: sum für das aufsummieren der zahlen von 1 bis 100 programmiert. Diese function möchte ich nun in Excel aufrufen, in...
  8. Excel VBA - Unterschied zwischen Sub & Function (beides mit Werteübergabe im Aufruf)

    in Microsoft Excel Hilfe
    Excel VBA - Unterschied zwischen Sub & Function (beides mit Werteübergabe im Aufruf): Hallo Forum, in einem aktuellen Projekt (Excel 2010) beschäftige ich mich endlich mal mit dem Thema "Function mit Werteübergabe", um immer wiederkehrenden Code nur einmal schreiben zu müssen....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden