6 messages in org.openoffice.fr.progRe: [prog] Programmer OpenOffice avec...
FromSent OnAttachments
Didier ALAINAug 18, 2004 1:10 am 
Serge LE LOUARNEAug 18, 2004 8:57 am 
Bernard MarcellyAug 18, 2004 9:43 am 
Didier ALAINAug 18, 2004 10:32 am 
Bernard MarcellyAug 19, 2004 5:20 am 
Didier ALAINAug 20, 2004 2:00 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Programmer OpenOffice avec Visual BasicActions...
From:Didier ALAIN (didi@laposte.net)
Date:Aug 18, 2004 10:32:52 am
List:org.openoffice.fr.prog

At 2004-08-18 17:58, Serge LE LOUARNE wrote:

Didier ALAIN wrote:

Bonjour à tous,

Malgré les contributions des forums Ooo et cette liste de diffusion, les programmeurs Visual Basic restent assez démunis et isolés. L'abord de l'API d'Ooo est encore plus difficile pour eux, car les limitations et pièges du pont Automation-UNO sont nombreux. Ayant pour habitude de documenter mes recherches pour mes collaborateurs, je rédige actuellement un document qui pourrait être un embryon de how-to ou un tutoriel ("Programmer OpenOffice avec Visual Basic"). Mes questions : - existe-t-il en dehors des sources déjà citées des documents utiles à ce sujet ? - Un tel document, ou une FAQ vous paraissent-ils d'un quelconque intérêt ? - Si oui, y a-t-il des volontaires (si possible chevronnés) pour corriger/valider/amender un tel document ?

Bien à vous !

Didier ALAIN http://www.kalitech.fr

Bonjour Alain,

Visual Basic (VBA, pour être exact) n'est pas utilisable

avec OOo.

VBA est différent dans sa philosophie de l'API OOo. Mais sous Windows, avec COM, il est possible de piloter OpenOffice.org en Visual Basic et d'autres langages. Voir, en anglais, la section Code Snippets dans OOoForum <http://www.oooforum.org/>. En particulier, lire le fil <http://www.oooforum.org/forum/viewtopic.php?t=9815> qui indique le codage pour Visual Basic, Delphi, PHP, et d'autres langages. En gros, une fois la connexion COM réussie, le codage API est similaire à celui des macros Basic, à part la syntaxe. Je ne pratique pas VB, mais j'y arrive en Delphi. Pour le HowTo, il serait certainement tout à fait utile.

Bonne soirée Bernard

Merci Bernard,

Le problème est qu'en faisant le tour des forums OOo, on ne trouve que quelques dizaines de messages concernant la programmation par l'intermédaire de COM (précisément le pont Automation-UNO), et ils se résument tous à la "mise à l'étrier". Une fois passé cette étape, le chemin est long pour commencer à être à l'aise dans l'API. En particulier, les difficultés liées au pont Automation-UNO ne sont pas très documentées en dehors du devguide. Tu as sûrement une bonne connaissance de ces problèmes si tu programmes en Delphi. Un de mes soucis actuel est la gestion d'évènements, pour laquelle la mécanique en VB reste très compliquée (du moins pour moi pour le moment). Le problème réside dans le "en gros (une fois la connexion COM réussie, le codage API est similaire à celui des macros)" : en gros, oui. Mais dans certains détails importants, non. Il existe en plus des difficultés inhérentes à l'utilisation du Basic (cette fois-ci qu'il soit Visual ou pas), comme le fait que les interfaces sont cachées, ce qui rend la lisibilité du lien langage/API difficile. Mais bon, assez de blabla, si quelques-uns trouvent ça utile, je peux mettre mon doc en ligne, tel quel, en espérant que des contributeurs m'aideront à le corriger/valider/compléter ! Il est probable que DannyB (modérateur du forum macro OOo) serait un contributeur de premier ordre, mais je n'ai écrit le doc qu'en français pour le moment et travailler sur deux versions me parait difficile vu mon emploi du temps... Là aussi, des volontaires pour une traduction anglaise seront bienvenus ! A moins que je ne maintienne que la version anglaise, à charge aux contributeurs fr de faire la traduction. Des idées ?

Le doc en l'état (brouillon en cours de compréhension/rédaction) se trouve à : http://www.kalitech.fr/clients/doc/APIOOo.html

Accédez au courrier électronique de La Poste : www.laposte.net ; 3615 LAPOSTENET (0,34€/mn) ; tél : 08 92 68 13 50 (0,34€/mn)