Bonsoir,

Le 14/10/2015 07:19, Jean-Francois Nifenecker a écrit :

comment peut-on lancer un dialogue interne de LibO par macro ?

Par exemple, je voudrais lancer l'éditeur de propriétés (accessible via
Fichier > Propriétés) depuis une macro.


Trouvé (comme souvent, dans l'excellentissime bible de Marcelly & Godard) [encore une histoire de lunettes qu'on cherche quand on les a sur les yeux...]

J'avais bien pensé au dispatcher et tenté l'enregistreur de macros mais il n'enregistrait pas ce que je voulais... En fait, c'est bien par le dispatcher qu'il faut passer mais en direct.

Le code est le suivant (testé sous LibO 5.0.1 officielle, Debian 8.1 Jessie, Cinnamon) :

8< -----------------------------------------------
Sub SetDocumentProperties()
'Call the LibO document properties dialog

        Dim oWindow As Variant
        Dim oDisplay As Object
        Dim l_Args()

        oWindow = StarDesktop.CurrentFrame
        oDisplay = createUnoService("com.sun.star.frame.DispatchHelper")

oDisplay.executeDispatch(oWindow, ".uno:SetDocumentProperties", "", 0, l_Args)

        Set oDisplay = Nothing

End Sub 'SetDocumentProperties
----------------------------------------------- >8

Pour trouver la commande dispatcher kivabien (SetDocumentProperties), yaka se plonger dans les arcanes de LibO, sous /opt/libreoffice5.0/share/config/soffice.cfg/modules (ou équivalent sur un autre OS que Linux). Ici, puisqu'il s'agit de l'interface générale de LO, il faut chercher dans le sous-répertoire sglobal/menubar et lire le fichier menubar.xml. Et ouala !


Encore merci à Bernard et à Laurent !
--
Jean-Francois Nifenecker, Bordeaux

--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à