von F3K Total » Sa, 14.02.2015 20:30
Hi,
wenn es nicht DDE sein muss,
anbei eine Datei mit Makro, das einen
Code: Alles auswählen
com.sun.star.datatransfer.clipboard.XClipboardListener
registriert, die Datei "merkt", wenn etwas in die Zwischenablage kopiert wird und schreibt es in Zelle A1 der Tabelle 1
Hier der Code
Code: Alles auswählen
global oClipboardListener
global oClipboardHandle
Sub AddClipboardListener
oClipboardListener = CreateUnoListener( "ClipboardListener_", "com.sun.star.datatransfer.clipboard.XClipboardListener" )
oClipboardHandle = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oClipboardHandle.addClipboardListener(oClipboardListener)
End Sub
Sub RemoveClipboardListener
On Error Resume Next
oClipboardHandle.removeClipboardListener(oClipboardListener)
End Sub
Sub ClipboardListener_changedContents(oEvent)
osheet = Thiscomponent.sheets(0)
oData = oEvent.Contents
oDataTypSeq = oData.getTransferDataFlavors
sValue = oData.getTransferData(oDataTypSeq(0))
oCellA1 = osheet.getcellbyposition(0,0)
oCellA1.String = sValue
End Sub
Sub ClipboardListener_disposing
end sub
Das Makro
AddClipboardListener zur Erzeugung des Listeners, habe ich an das Dokumentereignis
Ansicht wurde erzeugt gehängt, wird die Ansicht geschlossen, wird der Listener mit dem Makro
RemoveClipboardListener wieder beendet.
Gruß R
EDIT: Momentan klappt es nur mit reinem Text, wenn du ein anderes Format brauchst, sag bescheid, dann versuche ich das umzubauen.
- Dateianhänge
-
- InsertClipboardToA1.ods
- (8.98 KiB) 101-mal heruntergeladen
Hi,
wenn es nicht DDE sein muss,
anbei eine Datei mit Makro, das einen
[code]com.sun.star.datatransfer.clipboard.XClipboardListener[/code] registriert, die Datei "merkt", wenn etwas in die Zwischenablage kopiert wird und schreibt es in Zelle A1 der Tabelle 1
Hier der Code[code]global oClipboardListener
global oClipboardHandle
Sub AddClipboardListener
oClipboardListener = CreateUnoListener( "ClipboardListener_", "com.sun.star.datatransfer.clipboard.XClipboardListener" )
oClipboardHandle = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oClipboardHandle.addClipboardListener(oClipboardListener)
End Sub
Sub RemoveClipboardListener
On Error Resume Next
oClipboardHandle.removeClipboardListener(oClipboardListener)
End Sub
Sub ClipboardListener_changedContents(oEvent)
osheet = Thiscomponent.sheets(0)
oData = oEvent.Contents
oDataTypSeq = oData.getTransferDataFlavors
sValue = oData.getTransferData(oDataTypSeq(0))
oCellA1 = osheet.getcellbyposition(0,0)
oCellA1.String = sValue
End Sub
Sub ClipboardListener_disposing
end sub[/code]Das Makro [color=#0040FF][b]AddClipboardListener[/b][/color] zur Erzeugung des Listeners, habe ich an das Dokumentereignis [color=#0040FF][b]Ansicht wurde erzeugt[/b][/color] gehängt, wird die Ansicht geschlossen, wird der Listener mit dem Makro [color=#0040FF][b]RemoveClipboardListener[/b][/color] wieder beendet.
Gruß R
[color=#FF0000]EDIT:[/color] Momentan klappt es nur mit reinem Text, wenn du ein anderes Format brauchst, sag bescheid, dann versuche ich das umzubauen.