Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MouseMove funktioniert mit Win10 nicht mehr

Forumthread: MouseMove funktioniert mit Win10 nicht mehr

MouseMove funktioniert mit Win10 nicht mehr
10.04.2018 10:07:30
Thomas
Hallo liebes Forum,
ich wende mich vertrauensvoll an dieses Forum mit meinem Problem.
Ich habe eine Excel 2013 Datei auf dem in VBA ein Makro programmiert wurde bei dem es im wesentlichen um folgendes geht.
Nach einem Klick auf einen klickbaren Bereich im Excel wird ein Fenster im Hintergrund in den Vordergrund geholt und dann in diesem mehrere Eingabefelder befüllt.
Im Endeffekt wird ein Wert gespeichert, Fenster geholt, Maus auf Feld verschoben, Klick, Wert eingefügt - nächster Wert bis alles befüllt ist.
Es läuft alles problemlos unter Windows 7 mit Excel 2013. Nun werden im Betrieb die Rechner auf Windows 10 umgestellt und nun funktioniert die Mausverschiebung nicht mehr. Die Werte werden regulär übertragen. Das habe ich in einer txt einfach testen können.
Leider wurde das Ganze von einem ausgeschiedenen Praktikaten erstellt und bin nun auf Hilfe angewiesen da mir leider meine Kenntnisse nicht ausreichen. Möglicherweise ist es aber auch nur eine Kleinigkeit. Bis auf das Windows hat sich nichts geändert.
Ich füge noch ein paar Codezeilen ein.
Für jede Hilfe bedanke ich mich im Vorfeld.
https://www.herber.de/bbs/user/120966.txt
Gruß Thomas
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MouseMove funktioniert mit Win10 nicht mehr
10.04.2018 14:28:34
Thomas
Danke. Hab das Thema doch selbst hinbekommen. Offenbar kann Windows 10 nicht mit der von mir verwendeten Funktion umgehen. Ich hab den Code umgeschrieben. Folgende Funktion hab ich verwendet.
SetCursorPos. Damit klappts wieder.
Thema somit erledigt.
AW: MouseMove funktioniert mit Win10 nicht mehr
10.04.2018 17:36:51
Peter(silie)
Hallo,
du musst die WinAPI Funktionen auf VBA7/ VBA6 und Win64/ Wind32 anpassen und teilweise
VBA7 + Win64.
https://msdn.microsoft.com/de-de/library/office/ee691831(v=office.14).aspx
http://www.jkp-ads.com/articles/apideclarations.asp
Wenn du die Pointer und Datentypen nicht anpasst,
dann ist die wahrscheinlichkeit sehr hoch, dass der komplette Code
nutzlos ist auf einem anderen System und Excel einfach abstürzt.
Anzeige
;
Anzeige

Infobox / Tutorial

Mausbewegung in Excel VBA unter Windows 10 wiederherstellen


Schritt-für-Schritt-Anleitung

  1. Überprüfe die Excel-Version: Stelle sicher, dass Du Excel 2013 oder eine neuere Version verwendest.
  2. Code anpassen: Wenn Du mit Windows 10 arbeitest, kann es notwendig sein, den bestehenden VBA-Code anzupassen. Ersetze die alte Funktion zur Mausbewegung durch SetCursorPos.
    Declare PtrSafe Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
  3. WinAPI-Funktionen anpassen: Achte darauf, dass die WinAPI-Funktionen für VBA7 und Win64 korrekt deklariert sind. Dies verhindert, dass der Code in einer anderen Umgebung nicht funktioniert.
  4. Testen: Führe Dein Makro erneut aus, um sicherzustellen, dass die Mausbewegung jetzt korrekt funktioniert.

Häufige Fehler und Lösungen

  • Fehler: Die Maus bewegt sich nicht.

    • Lösung: Überprüfe, ob Du die Funktion SetCursorPos korrekt deklariert hast. Achte darauf, dass die Datentypen mit Deinem System übereinstimmen (32-Bit oder 64-Bit).
  • Fehler: Excel stürzt ab.

    • Lösung: Stelle sicher, dass alle Pointer und Datentypen im Code an das verwendete Betriebssystem und die Excel-Version angepasst sind.

Alternative Methoden

Eine Alternative zur Verwendung von SetCursorPos ist die Implementierung eines Excel VBA Mouse Jiggler. Dies kann helfen, die Mausbewegung zu simulieren, ohne direkt die Position zu setzen. Es gibt verschiedene Implementierungen im Internet, die Du an Deine Bedürfnisse anpassen kannst.


Praktische Beispiele

Hier ist ein einfaches Beispiel für die Verwendung von SetCursorPos:

Sub MoveMouse()
    Dim x As Long
    Dim y As Long
    x = 100 ' X-Koordinate
    y = 100 ' Y-Koordinate
    SetCursorPos x, y ' Mausposition setzen
End Sub

Dieses Skript setzt die Maus an die Koordinaten (100, 100) auf dem Bildschirm. Du kannst die Werte anpassen, um die Maus an die gewünschte Stelle zu bewegen.


Tipps für Profis

  • Debugging: Nutze die Debugging-Tools in VBA, um festzustellen, ob der Code an der richtigen Stelle ausgeführt wird.
  • Vermeide harte Kodierungen: Statt feste Koordinaten zu verwenden, kannst Du dynamische Berechnungen einsetzen, um die Mausposition zu bestimmen.
  • Dokumentation: Halte dich an die offiziellen Microsoft-Dokumentationen, um sicherzustellen, dass Du die neuesten und effektivsten Methoden verwendest.

FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code auf Windows 10 nicht?
Der Grund könnte sein, dass die verwendeten WinAPI-Funktionen nicht mit der neuen Umgebung kompatibel sind. Achte darauf, die Funktionen für 64-Bit-Systeme anzupassen.

2. Wo finde ich weitere Informationen zu SetCursorPos?
Du kannst die offizielle Microsoft-Dokumentation nutzen, die detaillierte Informationen zu den Funktionsaufrufen und deren Parametern bietet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige