Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wie muss es bei 64 bit Excel lauten

Forumthread: Wie muss es bei 64 bit Excel lauten

Wie muss es bei 64 bit Excel lauten
14.08.2017 22:46:37
Sabrina
Hallo Jungs,
steige von Office 2003 auf 2013 64 bit um.
Bei folgender Zeile kommt ein Fehler, wie muss die Zeile bei 64 bit Excel lauten?
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

LG Sabbel
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie muss es bei 64 bit Excel lauten
15.08.2017 07:26:54
Sepp
Hallo Sabbel,
probier mal
Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Aber warum wechselst du zu 64 bit? Selbst Microsoft empfiehlt weiterhin die 32 bit-Version.
Gruß Sepp

Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

So funktioniert die Deklaration von Funktionen in 64-Bit Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Deklariere die Funktion für 64-Bit Excel:

    • Verwende die folgende Zeile, um die Funktion GetAsyncKeyState korrekt zu deklarieren:
      Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  4. Verwenden der Funktion:

    • Du kannst die Funktion nun in deinem VBA-Code verwenden, um den Zustand einer Taste abzufragen.

Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert":

    • Stelle sicher, dass du PtrSafe in der Deklaration verwendest, um Kompatibilität mit 64-Bit Excel herzustellen.
  • Fehler: "Ungültige Deklaration":

    • Überprüfe, ob die Syntax der Deklaration korrekt ist. Zum Beispiel muss Lib "user32" korrekt geschrieben sein.

Alternative Methoden

Wenn du keine 64-Bit Version von Excel hast oder Probleme mit der Deklaration hast, kannst du auch auf andere Funktionen zurückgreifen:

  • Verwendung von GetKeyState:

    Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

    Diese Funktion kann auch verwendet werden, um den Zustand einer bestimmten Taste zu ermitteln.

  • Nutzung von GetKeyboardState:

    Private Declare PtrSafe Function GetKeyboardState Lib "user32" (lpKeyState As Byte) As Long

    Diese Funktion gibt den Zustand aller Tasten zurück.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Funktion GetAsyncKeyState in einer Schleife verwenden kannst, um zu prüfen, ob eine bestimmte Taste gedrückt wird:

Sub CheckKeyPress()
    Dim keyState As Integer
    Dim vKey As Long
    vKey = 65 ' ASCII für 'A'

    ' Schleife zur Überprüfung des Tastenzustands
    Do
        keyState = GetAsyncKeyState(vKey)
        If keyState <> 0 Then
            MsgBox "Taste A wurde gedrückt!"
            Exit Do
        End If
        DoEvents
    Loop
End Sub

Tipps für Profis

  • Verwende Public Declare für mehrere Module: Wenn du die Funktion in mehreren Modulen verwenden möchtest, kannst du die Deklaration als Public anlegen.

  • Achte auf die 64-Bit Kompatibilität: Stelle sicher, dass du PtrSafe verwendest, wenn du Funktionen aus der user32-Bibliothek in einem 64-Bit Excel-Projekt deklarierst.

  • Fehlerbehebung: Wenn du beim Deklarieren von Funktionen auf Fehler stößt, überprüfe immer die Versionskompatibilität und die Syntax.


FAQ: Häufige Fragen

1. Warum muss ich PtrSafe in meiner Deklaration verwenden?
PtrSafe ist notwendig, um sicherzustellen, dass der Code sowohl in 32-Bit als auch in 64-Bit Excel funktioniert.

2. Was ist der Unterschied zwischen GetAsyncKeyState und GetKeyState?
GetAsyncKeyState gibt den Zustand einer Taste zurück, während GetKeyState den Zustand einer Taste bei der letzten Tasteneingabe zurückgibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige