Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 11:16:26
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Maus auf Button legen ?

Maus auf Button legen ?
Kay
Hallo,
kann man per VBA-Befehl den Mauszieger (Cursor) auch auf ein Button legen ?
Habe vor, dass nach der Bestätigung einer MsgBox (VBOKonly) - die Maus wie auch der Button "Speichern" forciert werden. Mit SetFocus - ist zwar der Button gewählt, aber die Maus noch irgendwo in der Userform.
Kann man den Mauszeiger auch auf einen Button ziehen ?
Gruß
Kay
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Maus auf Button legen ?
09.08.2009 19:30:16
Tino
Hallo,
vielleicht geht es so, es muss nur wegen des Textes noch eine Korrektur eingegeben werden.
Leider weiß ich keine Lösung um die Maße der Msg zu bestimmen, weil während der Anzeige keine Makros laufen.
Da müsste man schon mit externer Hilfe arbeiten, aber wie gesagt dazu habe ich keine Lösung.
Option Explicit
  
Private Declare Function SetCursorPos Lib "user32" _
    (ByVal X As Long, ByVal Y As Long) As Long

Private Declare Function GetSystemMetrics Lib "user32" _
  (ByVal nIndex As Long) As Long
  
Private Type Maus_Pos
    X As Long
    Y As Long
End Type

Sub test()
Dim Maus As Maus_Pos

' X=Horizontal, Y=Vertikal 
Maus.X = GetSystemMetrics(0) / 2
Maus.Y = GetSystemMetrics(1) / 2
'Position Mitte + eine Korrektur 
SetCursorPos Maus.X + 30, Maus.Y + 50

MsgBox "Hallo das ist ein Test", vbOKOnly

End Sub
Gruß Tino
Anzeige
AW: Maus auf Button legen ?
09.08.2009 19:57:43
Kay
Hallo Tino,
vielen Dan erstmal, aber ich meinte - die Maus soll ein Button innerhalb der Userfom ansteuern. Diese befindet sich innerhalb der Userfor auf 648 TOP und 426 Left.
Kann man den Code so anpassen, das Maus.X und Maus.Y sich auf diese Userform beziehen ?
Denn nur die Werte eintragen half nichts....
Gruß und Danke
Kay
Anzeige
habe mal etwas gebastelt
09.08.2009 21:26:24
Tino
Hallo,
, teste mal ob es bei Dir geht.
Beim Click in die Userform sollte die Maus über den Button stehen.
Verschiebe auch mal die Userform auf deinem Bildschirm und wiederhole es und prüfe ob es so geht.
https://www.herber.de/bbs/user/63726.xls
Gruß Tino
Anzeige
Datei mit mehr Beispielen...
10.08.2009 14:26:07
Tino
Hallo,
habe mal noch ein bar Beispiel mit reingebaut, damit du sehen kannst wie es funktioniert.
Einfach die Sub mit dem Steuerelement wo die Maus hin soll aufrufen.
https://www.herber.de/bbs/user/63740.xls
Gruß Tino
AW: Datei mit mehr Beispielen...
13.08.2009 07:51:42
k
Hallo Tino,
es hat super funktioniert und vielen Dank für Deine 2'ter Version - sehr schön für mich um zu schauen, was da wie passiert...
Leider habe ich noch Probleme mit dem Lesen von Declare Function die auf Systemdateien zurückgreifen - da würde ich aktuell nie wissen - wie, wann man was anspricht...gibt es da eine Quelle in der man das nachlesen kann ?
Ansonsten habe Dank für Deine Hilfe !
Gruß
Kay
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Mauszeiger auf Button positionieren mit VBA


Schritt-für-Schritt-Anleitung

Um den Mauszeiger mithilfe von VBA auf einen Button innerhalb einer Userform zu positionieren, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen. Diese Anleitung setzt voraus, dass du grundlegende Kenntnisse in VBA hast.

  1. Erstelle eine Userform: Öffne den VBA-Editor (ALT + F11) und füge eine Userform hinzu.

  2. Füge einen Button hinzu: Platziere einen Button auf der Userform.

  3. Füge den VBA-Code ein: Klicke doppelt auf die Userform, um das Codefenster zu öffnen, und füge den folgenden Code ein:

    Option Explicit
    
    Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    
    Private Type Maus_Pos
       X As Long
       Y As Long
    End Type
    
    Private Sub UserForm_Click()
       Dim Maus As Maus_Pos
    
       ' Position des Buttons auf der Userform bestimmen
       Maus.X = Me.Left + 648 ' X-Position des Buttons
       Maus.Y = Me.Top + 426 ' Y-Position des Buttons
    
       ' Maus auf die Position setzen
       SetCursorPos Maus.X, Maus.Y
    End Sub
  4. Teste die Userform: Starte die Userform, klicke darauf und die Maus sollte über dem Button positioniert werden.


Häufige Fehler und Lösungen

  • Fehler: Maus wird nicht richtig positioniert

    • Lösung: Überprüfe die X- und Y-Koordinaten im Code. Stelle sicher, dass die Werte den tatsächlichen Positionen des Buttons in der Userform entsprechen.
  • Fehler: SetCursorPos funktioniert nicht

    • Lösung: Stelle sicher, dass der Code korrekt in die Userform eingefügt wurde. Prüfe auch, ob die Deklarationen für die API-Funktionen korrekt sind.

Alternative Methoden

Wenn du die Mauspositionierung nicht über API-Funktionen vornehmen möchtest, kannst du auch ein Maus Makro erstellen, das die Schaltfläche durch einen Klick aktiviert, ohne die Maus zu bewegen. Beispiel:

Private Sub Button_Click()
    ' Aktion für den Button
End Sub

Hierbei wird der Button durch einen Klick aktiviert, ohne dass die Maus bewegt werden muss.


Praktische Beispiele

  1. Maus auf einen speicher Button setzen: Ändere die X- und Y-Koordinaten im Code, um den Mauszeiger auf einen spezifischen Button zu positionieren.
  2. Beispiel mit MsgBox: Kombiniere die Positionierung mit einer MsgBox, um nach einer Aktion die Maus zu bewegen.
MsgBox "Klicke OK, um die Maus zu bewegen."
SetCursorPos Maus.X, Maus.Y

Tipps für Profis

  • Verwende vba setcursorpos effizient: Nutze diese Funktion nur, wenn es notwendig ist, da sie das Benutzererlebnis beeinträchtigen kann.
  • Dokumentation lesen: Informiere dich über die API-Deklarationen und deren Verwendung, um Fehler zu vermeiden und den Code zu optimieren.

FAQ: Häufige Fragen

1. Kann ich die Mausposition dynamisch anpassen? Ja, du kannst die X- und Y-Werte im Code anpassen, um die Maus an verschiedenen Positionen innerhalb der Userform zu setzen.

2. Gibt es eine Möglichkeit, die Mausbewegung zu animieren? Standardmäßig gibt es keine einfache Möglichkeit, die Mausbewegung zu animieren. Du kannst jedoch eine Schleife verwenden, um die Position schrittweise zu ändern, was zu einer Animation führen könnte.

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