Vous ne pouvez obtenir que la valeur de retour de la fonction.
Si des valeurs doivent être récupérées, elles doivent être stockées dans des propriétés qui seront accessibles en .NET
-- Paul Bacelar
"cyrille" wrote in message news: Salut,
depuis du code C# j'appelle des fonctions VBA écritent dans Powerpoint.
Par contre je n'ais pas trouvé comment récupérer dans le code C# des valeurs calculées par ces fonctions VBA.
Quelle piste suivre ?
merci cyrille
cyrille
Merci Paul,
Paul Bacelar wrote:
Vous ne pouvez obtenir que la valeur de retour de la fonction.
et bien comment faire pour obtenir la valeur de retour d'une fonction ? en fait pour l'instant mon seul moyen d'accès au VBA depuis C# est de la forme :
PowerPoint.Application pApp; pApp = (PowerPoint.Application) System.Runtime.InteropServices.Marsha l.GetActiveObject("PowerPoint.Application"); int toto = 123 ; object[] o = {toto}; pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
D'après votre réponse, je me dis qu'il doit y avoir un autre moyen ?. ..
Cyrille
Merci Paul,
Paul Bacelar wrote:
Vous ne pouvez obtenir que la valeur de retour de la fonction.
et bien comment faire pour obtenir la valeur de retour d'une fonction ?
en fait pour l'instant mon seul moyen d'accès au VBA depuis C#
est de la forme :
PowerPoint.Application pApp;
pApp = (PowerPoint.Application) System.Runtime.InteropServices.Marsha l.GetActiveObject("PowerPoint.Application");
int toto = 123 ;
object[] o = {toto};
pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
D'après votre réponse, je me dis qu'il doit y avoir un autre moyen ?. ..
Vous ne pouvez obtenir que la valeur de retour de la fonction.
et bien comment faire pour obtenir la valeur de retour d'une fonction ? en fait pour l'instant mon seul moyen d'accès au VBA depuis C# est de la forme :
PowerPoint.Application pApp; pApp = (PowerPoint.Application) System.Runtime.InteropServices.Marsha l.GetActiveObject("PowerPoint.Application"); int toto = 123 ; object[] o = {toto}; pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
D'après votre réponse, je me dis qu'il doit y avoir un autre moyen ?. ..
Cyrille
Paul Bacelar
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .NET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
Object toto = pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o ); String res = toto as string;
-- Paul Bacelar
"cyrille" wrote in message news: Merci Paul,
Paul Bacelar wrote:
Vous ne pouvez obtenir que la valeur de retour de la fonction.
et bien comment faire pour obtenir la valeur de retour d'une fonction ? en fait pour l'instant mon seul moyen d'accès au VBA depuis C# est de la forme :
PowerPoint.Application pApp; pApp = (PowerPoint.Application) System.Runtime.InteropServices.Marshal.GetActiveObject("PowerPoint.Applicati on"); int toto = 123 ; object[] o = {toto}; pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
D'après votre réponse, je me dis qu'il doit y avoir un autre moyen ?...
Cyrille
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .NET.
Vous n'avez ensuite qu'à caster l'objet en un type voulu.
Object toto = pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
String res = toto as string;
--
Paul Bacelar
"cyrille" <cyrilleml@kbuilder.net> wrote in message
news:412E9175.8050807@kbuilder.net...
Merci Paul,
Paul Bacelar wrote:
Vous ne pouvez obtenir que la valeur de retour de la fonction.
et bien comment faire pour obtenir la valeur de retour d'une fonction ?
en fait pour l'instant mon seul moyen d'accès au VBA depuis C#
est de la forme :
PowerPoint.Application pApp;
pApp = (PowerPoint.Application)
System.Runtime.InteropServices.Marshal.GetActiveObject("PowerPoint.Applicati
on");
int toto = 123 ;
object[] o = {toto};
pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
D'après votre réponse, je me dis qu'il doit y avoir un autre moyen ?...
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .NET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
Object toto = pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o ); String res = toto as string;
-- Paul Bacelar
"cyrille" wrote in message news: Merci Paul,
Paul Bacelar wrote:
Vous ne pouvez obtenir que la valeur de retour de la fonction.
et bien comment faire pour obtenir la valeur de retour d'une fonction ? en fait pour l'instant mon seul moyen d'accès au VBA depuis C# est de la forme :
PowerPoint.Application pApp; pApp = (PowerPoint.Application) System.Runtime.InteropServices.Marshal.GetActiveObject("PowerPoint.Applicati on"); int toto = 123 ; object[] o = {toto}; pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
D'après votre réponse, je me dis qu'il doit y avoir un autre moyen ?...
Cyrille
cyrille
Paul Bacelar wrote:
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .N ET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
Object toto = pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o ); String res = toto as string;
Merci Paul, c'est une bonne nouvelle. Je vais essayer de suite.
Cyrille
Paul Bacelar wrote:
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .N ET.
Vous n'avez ensuite qu'à caster l'objet en un type voulu.
Object toto = pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o );
String res = toto as string;
Merci Paul, c'est une bonne nouvelle.
Je vais essayer de suite.
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .N ET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
Object toto = pApp.Run( PPTAddIn.name + "!LeModule.LaFonction", ref o ); String res = toto as string;
Merci Paul, c'est une bonne nouvelle. Je vais essayer de suite.
Cyrille
cyrille
cyrille wrote:
Paul Bacelar wrote:
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .NET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
bon ça fonctionne très bien.
maintenant pour aller plus loin de façon plus autonome, il me faudrait de la documentation sur Microsoft.Office.Interop.PowerPoint.ApplicationClass.
dans la doc de VS.NET 2003 / MSDN, il y a bien du blabla sur comment faire, mais je ne trouve aucune référence genre liste méthodes,attributs,e vents par objet ...
où trouver ça ? sur quel CD de "msdn universal" ?
cyrille
cyrille wrote:
Paul Bacelar wrote:
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous
.NET.
Vous n'avez ensuite qu'à caster l'objet en un type voulu.
bon ça fonctionne très bien.
maintenant pour aller plus loin de façon plus autonome,
il me faudrait de la documentation sur
Microsoft.Office.Interop.PowerPoint.ApplicationClass.
dans la doc de VS.NET 2003 / MSDN,
il y a bien du blabla sur comment faire,
mais je ne trouve aucune référence genre liste méthodes,attributs,e vents par objet ...
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .NET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
bon ça fonctionne très bien.
maintenant pour aller plus loin de façon plus autonome, il me faudrait de la documentation sur Microsoft.Office.Interop.PowerPoint.ApplicationClass.
dans la doc de VS.NET 2003 / MSDN, il y a bien du blabla sur comment faire, mais je ne trouve aucune référence genre liste méthodes,attributs,e vents par objet ...
où trouver ça ? sur quel CD de "msdn universal" ?
cyrille
Paul Bacelar
Tous ceci est lié au monde COM, donc il faut utiliser les outils COM.
L'outil "OLE/COM ObjectViewer" de VS.NET permet de lire la tlb (bibliothèque de types) de l'exécutable de PowerPoint et donc de connaître l'ensemble des types, méthodes, propriétés, interfaces du modèle objet de PowerPoint -- Paul Bacelar
Demandeur d'emploi
"cyrille" wrote in message news: cyrille wrote:
Paul Bacelar wrote:
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .NET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
bon ça fonctionne très bien.
maintenant pour aller plus loin de façon plus autonome, il me faudrait de la documentation sur Microsoft.Office.Interop.PowerPoint.ApplicationClass.
dans la doc de VS.NET 2003 / MSDN, il y a bien du blabla sur comment faire, mais je ne trouve aucune référence genre liste méthodes,attributs,events par objet ...
où trouver ça ? sur quel CD de "msdn universal" ?
cyrille
Tous ceci est lié au monde COM, donc il faut utiliser les outils COM.
L'outil "OLE/COM ObjectViewer" de VS.NET permet de lire la tlb (bibliothèque
de types) de l'exécutable de PowerPoint et donc de connaître l'ensemble des
types, méthodes, propriétés, interfaces du modèle objet de PowerPoint
--
Paul Bacelar
Demandeur d'emploi
"cyrille" <cyrilleml@kbuilder.net> wrote in message
news:O9Y7PgBjEHA.3612@TK2MSFTNGP12.phx.gbl...
cyrille wrote:
Paul Bacelar wrote:
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous
.NET.
Vous n'avez ensuite qu'à caster l'objet en un type voulu.
bon ça fonctionne très bien.
maintenant pour aller plus loin de façon plus autonome,
il me faudrait de la documentation sur
Microsoft.Office.Interop.PowerPoint.ApplicationClass.
dans la doc de VS.NET 2003 / MSDN,
il y a bien du blabla sur comment faire,
mais je ne trouve aucune référence genre liste méthodes,attributs,events par
objet ...
Tous ceci est lié au monde COM, donc il faut utiliser les outils COM.
L'outil "OLE/COM ObjectViewer" de VS.NET permet de lire la tlb (bibliothèque de types) de l'exécutable de PowerPoint et donc de connaître l'ensemble des types, méthodes, propriétés, interfaces du modèle objet de PowerPoint -- Paul Bacelar
Demandeur d'emploi
"cyrille" wrote in message news: cyrille wrote:
Paul Bacelar wrote:
"pApp.Run" retourne un "Variant" COM qui se traduit en "Object" sous .NET. Vous n'avez ensuite qu'à caster l'objet en un type voulu.
bon ça fonctionne très bien.
maintenant pour aller plus loin de façon plus autonome, il me faudrait de la documentation sur Microsoft.Office.Interop.PowerPoint.ApplicationClass.
dans la doc de VS.NET 2003 / MSDN, il y a bien du blabla sur comment faire, mais je ne trouve aucune référence genre liste méthodes,attributs,events par objet ...