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

Maussteuerung über VBA möglich?

Forumthread: Maussteuerung über VBA möglich?

Maussteuerung über VBA möglich?
27.10.2005 17:05:34
Heiner
Hallo,
ist es grundsätzlich möglich mittels VBA den Mauscoursor an eine bestimmte Koordinate zu setzen und dort dann einen Linksklick ausführen zu lassen?
Das würde mir sehr, sehr helfen.
MfG
Heiner
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Maussteuerung über VBA möglich?
27.10.2005 17:26:53
Hoffi
Hallo Heiner,
verstehe Deine Frage net so richtig.
Natürlich kannst Du in einer Excel Mappe mittels Range Befehl eine bestimmte Zelle ansteuern und mittels Select Befehl diese auswählen (gleich wie Linksklick).
Beschreib Den Hintergrund ein wenig.
Grüße
Hoffi
AW: Maussteuerung über VBA möglich?
28.10.2005 08:51:10
Heiner
Ich habe 2 Bildschirme, im rechten läuft Excel, im linken eine webbasierende Anwendung, deren Formularfelder ich über Sendkeys ausfüllen lassen möchte. Das funktioniert soweit ganz gut, allerdings können manche Felder nicht mit der Tastatur angesprochen werden, deshalb möchte ich den Mauscorsor auf dieses Feld bewegen und dann aktivieren.
Anzeige
AW: Maussteuerung über VBA möglich?
28.10.2005 09:05:02
Heiner
Hallo,
danke, das hilft mir schon gewaltig weiter. Aber jetzt fehlt mir noch der Linksklick. Hier http://www.activevb.de/tipps/vb6tipps/tipp0156.html ist eine Lösung für VB, die läuft aber irgendwie net auf VBA. Das umzuschreiben entzieht sich meinen bescheidenen Kenntnissen. Kann mir da nochmal jemand auf die Sprünge helfen? Wäre genial.
Gruß
Heiner
Anzeige
hat sich erledigt: Maussteuerung über VBA möglich?
28.10.2005 11:55:54
Heiner
Hat sich erledigt, hier ist der Code:
Private Declare

Sub mouse_event Lib "user32" _
(ByVal dwFlags As Long, ByVal dx As Long, _
ByVal dy As Long, ByVal cButtons As Long, _
ByVal dwExtraInfo As Long)
Public Const MOUSE_LEFT = 0
Public Const MOUSE_MIDDLE = 1
Public Const MOUSE_RIGHT = 2
'Die nachfolgende Prozedur simuliert den gewünschten Mausklick.
Public 

Sub SendMausklick(ByVal mButton As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
If (mButton = MOUSE_LEFT) Then
Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
ElseIf (mButton = MOUSE_MIDDLE) Then
Call mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
Else
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
End If
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

Maussteuerung in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor in Excel zu starten.

  2. Modul einfügen: Klicke im Menü auf Einfügen und wähle Modul.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Private Declare PtrSafe Sub mouse_event Lib "user32" _
        (ByVal dwFlags As Long, ByVal dx As Long, _
        ByVal dy As Long, ByVal cButtons As Long, _
        ByVal dwExtraInfo As Long)
    
    Public Const MOUSE_LEFT = 0
    Public Const MOUSE_MIDDLE = 1
    Public Const MOUSE_RIGHT = 2
    
    ' Die nachfolgende Prozedur simuliert den gewünschten Mausklick.
    Public Sub SendMausklick(ByVal mButton As Long)
        Const MOUSEEVENTF_LEFTDOWN = &H2
        Const MOUSEEVENTF_LEFTUP = &H4
    
        If (mButton = MOUSE_LEFT) Then
            Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
            Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
        End If
    End Sub
  4. Maus bewegen: Um die Maus zu einer bestimmten Position zu bewegen, kannst du den Befehl SetCursorPos aus der Windows API verwenden. Füge den folgenden Code in dein Modul ein:

    Private Declare PtrSafe Function SetCursorPos Lib "user32" _
        (ByVal X As Long, ByVal Y As Long) As Long
    
    Sub BewegeMaus(ByVal X As Long, ByVal Y As Long)
        SetCursorPos X, Y
    End Sub
  5. Makro ausführen: Du kannst das Makro nun ausführen, um die Maus zu bewegen und zu klicken.


Häufige Fehler und Lösungen

  • Fehler 1: "Sub oder Funktion nicht definiert".

    • Lösung: Stelle sicher, dass alle notwendigen Declare-Anweisungen korrekt im Modul stehen.
  • Fehler 2: "Maus bewegt sich nicht".

    • Lösung: Überprüfe, ob du die richtigen Koordinaten für die SetCursorPos-Funktion verwendest. Beachte, dass die Koordinaten relativ zum Bildschirm sind.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch auf Software-Tools zurückgreifen, die Mausbewegungen simulieren. Diese sind oft benutzerfreundlicher, bieten jedoch weniger Anpassungsmöglichkeiten.


Praktische Beispiele

  1. Mausbewegung zu einem bestimmten Punkt:

    Sub BeispielMausBewegen()
        BewegeMaus 100, 200 ' Setze Maus auf die Koordinaten (100, 200)
        SendMausklick MOUSE_LEFT ' Führe einen Linksklick aus
    End Sub
  2. Maussteuerung im Kontext: Dies kann besonders hilfreich sein, wenn du Formulare in webbasierten Anwendungen automatisch ausfüllen möchtest, die nicht vollständig über die Tastatur steuerbar sind.


Tipps für Profis

  • Experimentiere mit verschiedenen Mauspositionen, um die optimale Position für dein Makro zu finden.
  • Nutze das Application.Wait-Kommando, um Verzögerungen einzufügen und sicherzustellen, dass die Aktionen in der richtigen Reihenfolge ausgeführt werden.
  • Speichere deine Arbeit regelmäßig, um Datenverluste zu vermeiden, besonders wenn du mit VBA experimentierst.

FAQ: Häufige Fragen

1. Kann ich die Mausbewegung auch in anderen Office-Anwendungen verwenden?
Ja, die meisten VBA-Methoden sind kompatibel mit Anwendungen wie Word und PowerPoint.

2. Gibt es eine Möglichkeit, die Mausbewegung zu verlangsamen?
Ja, du kannst zwischen den Bewegungen eine Wartefunktion einfügen, um die Geschwindigkeit zu regulieren.

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