Seite 1 von 1
Makro auf Mausklick
Verfasst: Mi, 25.05.2011 21:49
von erikafuchs
Hallo Ihr Lieben;
wie man in einem Dialogfeld per Mausklick ein Makro ausführt weiß ich, gibt es auch eine Möglichkeit ein Makro auszuführen wenn irgendwo auf einem Tabellenblatt ein Mausklick erfolgt oder die Returntaste gedrückt wird? Mir fällt da gar nichts dazu ein.
Vielen Dank für eure Mühe!
Grüße
Pit
Re: Makro auf Mausklick
Verfasst: Mi, 25.05.2011 22:02
von daswaldhorn
Hallo,
wenn du auf das Tabellenblatt eine Schaltfläche legst (die Symbolleiste "Formular-Steuerelemente" sichtbar machen), kannst du dieser wieder ein Makro zuweisen, schau mal in die Beispieldatei von Balu in diesem
Thread. Bei der Return-Taste bin ich auch überfragt.
Gruß, Carsten
Re: Makro auf Mausklick
Verfasst: Mi, 25.05.2011 22:14
von erikafuchs
Lieber Carsten,
vielen Dank für die schnelle Hilfe aber ich glaube das bringt mich nicht weiter. Ich möchte keine Schaltfläche auf dem Blatt haben. Ich erkläre vielleicht kurz worum es geht:
Ich mache mit meinen Schülern in Mathematik im Jahrgang 10 nach den Prüfungen und kurz vor den Ferien einen kleine Programmier-, Tabellenkalkulation- und Makrokurs. Jetzt fanden sie das alles zu langweilig und wollten mich vielleicht mit der Frage herausfordern ob man damit nicht auch "Snake" programmieren kann. Ich habe jetzt kurz nachgedacht und wollte eine "Schlange" (z.B. "o"s) per Zufallszahlen auf dem Blatt sich bewegen lassen und die Schüler sollen versuchen, sie mit einer "Mauer" (z.B. "x") einzufangen. Die Schüler setzen ein "x" in eine Zelle und die Schlange geht ein Feld weiter. Nach jedem Betätigen der Returntaste soll der nächste Schritt (Makro) ausgeführt werden. Es wäre blöd wenn man nach dem Plazieren des "x" noch eine Schaltfläche anklicken müsste.
Grüße
Pit
Re: Makro auf Mausklick
Verfasst: Mi, 25.05.2011 22:17
von F3K Total
Hallo Pit,
mit dem Thema habe ich letztens einige Abende verbracht,
hier der Code, der auf einem Calc Sheet funktioniert:
Code: Alles auswählen
global myKeyHandler as object
global myMouseClickHandler as object
sub setup_handler
SetupMouseClickHandler
SetupKeyHandler
end sub
sub remove_handler
RemoveMouseClickHandler
RemoveKeyHandler
end sub
sub SetupMouseClickHandler
oController = thisComponent.currentController
myMouseClickHandler = CreateUnoListener("MouseClickHandler_","com.sun.star.awt.XMouseClickHandler")
oController.addMouseClickHandler(myMouseClickHandler)
end sub
sub RemoveMouseClickHandler
On Error Resume Next
oController = thisComponent.currentController
oController.removeMouseClickHandler(myMouseClickHandler)
On Error Goto 0
end sub
function MouseClickHandler_mousePressed(oMouseEvent) as boolean
MouseClickHandler_mousePressed = false
end function
Function MouseClickHandler_mouseReleased(oMouseEvent) As Boolean
On Error Goto err
if oMouseEvent.ClickCount = 2 then Msgbox "Doppelklick"
err:
On Error Goto 0
MouseClickHandler_mouseReleased = False
End Function
Sub MouseClickHandler_disposing(oMouseEvent)
'
End Sub
sub SetupKeyHandler
oController = thisComponent.currentController
myKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")
oController.addKeyHandler(myKeyHandler)
end sub
sub RemoveKeyHandler
oController = thisComponent.currentController
oController.removeKeyHandler(myKeyHandler)
end sub
Sub KeyHandler_disposing(oKeyEvent)
'
End Sub
function KeyHandler_keyPressed(oKeyEvent) as boolean
KeyHandler_keyPressed = false
if oKeyEvent.KeyCode=1280 then msgbox "Return-Taste"
end function
Function KeyHandler_KeyReleased(oKeyEvent) As Boolean
KeyHandler_KeyReleased = false
End Function
Wenn man jetzt "setup_handler" unter Extras/Anpassen/Ereignisse auf "Dokument öffnen" und "remove_handler" auf "Dokument wird geschlossen" legt, funzt es.
Viel Spaß damit
Gruß R
Re: Makro auf Mausklick
Verfasst: Mi, 25.05.2011 22:58
von erikafuchs
Lieber R,
... sieht ja erstmal recht umfangreich aus. Ich werde es testen - vielen Dank erstmal.
Sehe ich es richtig, dass mein Code hier rein muss:
Sub KeyHandler_disposing(oKeyEvent)
'
End Sub
?
Grüße
Pit
Re: Makro auf Mausklick
Verfasst: Do, 26.05.2011 04:42
von F3K Total
Hallo Pit,
erikafuchs hat geschrieben:Sehe ich es richtig ...
Nein, dass siehst Du nicht richtig, die sub ist so kurz.
Da wo
oder
steht, ruftst Du deinen eigenen Code auf.
Gruß R
Re: Makro auf Mausklick
Verfasst: Do, 26.05.2011 23:19
von F3K Total
Noch ein kleiner Tipp, mit
hast Du Zugriff auf die Zelle in die Du einen Doppelklick gemacht hast, oder in der Du die Return Taste gedrückt hast.
Gruß R