Bonjour,

Je souhaite simplement exécuter une macro qui est dans un document Ooffice, depuis Delphi via l'OLE comment faire ?

Je peux charger le document
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
//------------------------------------------------------------------------------------------------------------------------------
procedure TForm1.BtnLoadDocumentClick(Sender: TObject);
var
  LoadParams : Variant;
  NomFichier : AnsiString;
begin
  OpenOffice  := CreateOleObject('com.sun.star.ServiceManager');
  OpenDesktop := OpenOffice.createInstance('com.sun.star.frame.Desktop');
  LoadParams  := VarArrayCreate([0, -1], varVariant);
  NomFichier  := StringReplace(DocumentFileName, '\', '/', [rfReplaceAll, rfIgnoreCase]);
  OLEDocument := openDesktop.LoadComponentFromURL( 'file:///'+NomFichier, '_blank', 0,  LoadParams);
end;
Je peux mettre à jour un signet:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
procedure TForm1.BtnSetDateTimeClick(Sender: TObject);
var
 bmk : variant;
begin
  try 
    bmk := OLEDocument.Bookmarks.getByName('DateTime').Anchor; 
  except  
    bmk:=null; 
  end;
  if not(VarIsEmpty(bmk)) then bmk.setString('The date and time') else ShowMessage('Repere de texte non trouvé');
end;
Mais impossible de trouver comment executer une macro..
Merci