Bonjour Philippe,
Message du 2005-08-26 17:50:
Permet-elle d'appeler une macro d'un document à partir d'une macro d'un autre document.

Rien de changé par rapport à la version 1.1


Dans votre livre, vous dites que c'est possible moyennant une
acrobatie logicielle ? faut-il par exemple passer par le shell ?

J'ai déjà répondu récemment dans le contexte COM avec Delphi. Il faut utiliser le dispatcher. En Basic cela donne ceci.

Supposons ouvert un document appelé MessageBox.sxw contenant une bibliothèque maBibli, avec dans son Module1 cette macro:
  Sub afficher(texte as string)
  MsgBox(texte)
  End Sub

Ouvrons un deuxième document contenant cette macro:
Sub lancerMacroAilleurs
dim fenetreDoc as object, dsp as object
fenetreDoc = StarDesktop.CurrentFrame
dsp = CreateUnoService("com.sun.star.frame.DispatchHelper")
rem   --  ici une ligne très longue !!!
dsp.executeDispatch(fenetreDoc, "macro://MessageBox/maBibli.Module1.afficher(Hello OOo!)", "", 0, Array())

msgbox("macro lancée")
End Sub

Lancer la macro "lancerMacroAilleurs". On verra s'afficher "Hello OOo!" puis à la fermeture de la boîte, le message "macro lancée". On voit que la macro "afficher" a interprété tout le texte comme un seul argument. Les arguments d'appel de la macro sont séparés par des virgules, chaque argument étant toujours récupéré par la macro comme un String. La macro appelée ne peut pas renvoyer d'information à son appelant (en tous cas, je n'ai pas trouvé comment faire).

   Bernard


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à