Macros

From The Document Foundation Wiki
< Macros‎ | General‎ | 008
Jump to: navigation, search

Coller le texte du presse-papiers sans mise en forme

Voici une fonction simple, qui vous permet de récupérer sans mise en forme du texte depuis le presse-papiers.

Il suffit de copier la fonction dans un module de l'appeler depuis une autre procédure ou fonction, par exemple :

sub clpboardTest
  MsgBox (getClipboardText)
end sub

Voici la fonction principale:

Function getClipboardText () AS String

dim oClip as object ,oConverter as object
dim oClipContents as object ,oTypes as object
dim i%
oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oConverter = createUnoService("com.sun.star.script.Converter")
On Error Resume Next
oClipContents = oClip.getContents
oTypes = oClipContents.getTransferDataFlavors
For i=LBound(oTypes) To UBound(oTypes)
  If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
    Exit For
  End If
Next
If (i >= 0) Then
  On Error Resume Next
  getClipboardText = oConverter.convertToSimpleType _
                     (oClipContents.getTransferData(oTypes(i)), com.sun.star.uno.TypeClass.STRING)
End If
End Function