Ich möchte ein Makro auslösen, wenn ich auf das Dokument - also nicht auf ein Button oder sonst ein anderes Element, sondern auf das Blatt, in das ich schreibe - klicke.
Kann mir jemand helfen?
Vielen Dank
Makro auslösen, wenn man auf das Dokument klickt
Moderator: Moderatoren
Re: Makro auslösen, wenn man auf das Dokument klickt
Guten Tag Jonny,
was für ein Dokument meinst Du?
Gruß R
was für ein Dokument meinst Du?
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Makro auslösen, wenn man auf das Dokument klickt
Ich meinte irgendein Blatt, was ich mit OO-Writer öffne.
Aber die Lösung habe ich im Handbuch gefunden:
Entschuldige bitte, daß ich das Handbuch erst danach zu Rate gezogen habe.
Aber die Lösung habe ich im Handbuch gefunden:
Code: Alles auswählen
Global vSelChangeListener 'Muss global sein
Global vSelChangeBroadCast
'Zum Start der Überwachung führen Sie dieses Makro aus.
Sub StartListeningToSelChangeEvents
Dim sPrefix$
Dim sService$
sPrefix = "sel_change_"
sService = "com.sun.star.view.XSelectionChangeListener"
REM Das Anmeldungsobjekt zur Beobachtung der Auswahländerungen
REM ist der CurrentController
vSelChangeBroadCast = ThisComponent.getCurrentController
'Erzeugt einen Listener zum Abfangen der Auswahländerungs-Ereignisse
vSelChangeListener = CreateUnoListener(sPrefix, sService)
'Registriert den Listener beim Dokument-Controller
vSelChangeBroadCast.addSelectionChangeListener(vSelChangeListener)
End Sub
Sub StopListeningToSelChangeEvents
' Entfernt den Listener
vSelChangeBroadCast.removeSelectionChangeListener(vSelChangeListener)
End Sub
Sub sel_change_selectionChanged(vEvent)
Dim vCurrentSelection As Object
vCurrentSelection = vEvent.source
Print "Anzahl der selektierten Bereiche = " &_
vCurrentSelection.getSelection().getCount()
End Sub
Re: Makro auslösen, wenn man auf das Dokument klickt
Hallo Jonny,
fyi: Es gibt auch noch den "com.sun.star.awt.XMouseClickHandler" der detektiert tatsächlich das Klicken.
Gruß R
genau, und das war mir nicht klar, hätte ja auch ein Calc, Base ...-Dokument sein können.Jonny1 hat geschrieben:was ich mit OO-Writer öffne
fyi: Es gibt auch noch den "com.sun.star.awt.XMouseClickHandler" der detektiert tatsächlich das Klicken.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Makro auslösen, wenn man auf das Dokument klickt
Dieser Hinweis ist Gold wert. Im Handbuch "OOME_3_0_deutsch.odt" ist davon nichts zu finden. Aber im Internet. Oder hast du einen besseren Vorschlag? Kennst du ein besseres Handbuch als "OOME_3_0_deutsch.odt"?
Vielen Dank!
Vielen Dank!
Re: Makro auslösen, wenn man auf das Dokument klickt
Ich habe es gefunden:
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
Global oDocView As Object
Global oMouseClickHandler As Object
Sub RegisterMouseClickHandler
oDocView = ThisComponent.currentController
oMouseClickHandler = _
createUnoListener("MyApp_", "com.sun.star.awt.XMouseClickHandler")
' writedbginfo oMouseClickHandler
oDocView.addMouseClickHandler(oMouseClickHandler)
End Sub
Sub UnregisterMouseClickHandler
on error resume next
oDocView.removeMouseClickHandler(oMouseClickHandler)
on error goto 0
End Sub
Sub MyApp_disposing(oEvt)
End Sub
Function MyApp_mousePressed(oEvt) As Boolean
MyApp_mousePressed = False
End Function
Function MyApp_mouseReleased(oEvt) As Boolean
Dim sMsg As String
With oEvt
sMsg = sMsg & "Modifiers = " & .Modifiers & Chr(10)
sMsg = sMsg & "Buttons = " & .Buttons & Chr(10)
sMsg = sMsg & "X = " & .X & Chr(10)
sMsg = sMsg & "Y = " & .Y & Chr(10)
sMsg = sMsg & "ClickCount = " & .ClickCount & Chr(10)
sMsg = sMsg & "PopupTrigger = " & .PopupTrigger '& Chr(10)
'sMsg = sMsg & .Source.dbg_Methods
End With
ThisComponent.text.string = sMsg
MyApp_mouseReleased = False
End Function