| auteur : blondelle | Soit un fichier contenant du code VBE : Fichier testrows.txt |
Sub essai()
Rows("10:11").Select
End sub
|
Les Variant vMSExcel et vXLWorkbook représentent respectivement une instance de l'application Excel et un classeur. Il s'agit de manipuler un module VBE et de créer à la volée une macro à partir d'un fichier, puis de la supprimer après execution.
Attention, le code suivant peut ne pas fonctionner selon votre configuration sécurité d'Excel (cf. Options de sécurité, sécurité des macros).
Variant VBComp;
VBComp = vXLWorkbook.OlePropertyGet (" VBProject " ).OlePropertyGet (" VBComponents " );
VBComp.OleProcedure (" Import " , " c:\\testrows.txt " );
vMSExcel.OleProcedure (" Run " , " essai " );
VBComp.OleFunction (" Remove " , VBComp.OleFunction (" Item " , " Module1 " ));
|
|
| auteur : blondelle | Le Variant vMSExcel représente une instance d'Excel, vXLWorkbook repésente un classeur. Il s'agit de manipuler un module VBE et de créer à la volée une macro, puis de la supprimer après execution.
Attention, le code suivant peut ne pas fonctionner selon votre configuration sécurité d'Excel (cf. Options de sécurité, sécurité des macros).
Variant VBComp;
VBComp = vXLWorkbook.OlePropertyGet (" VBProject " ).OlePropertyGet (" VBComponents " ).OleFunction (" Add " , 1 );
VBComp.OlePropertySet (" Name " , " MyModule " );
VBComp.OlePropertyGet (" CodeModule " ).OleProcedure (" InsertLines " , 1 , " Sub laMacro() " );
VBComp.OlePropertyGet (" CodeModule " ).OleProcedure (" InsertLines " , 2 , " Rows(\"10:11\").Select " );
VBComp.OlePropertyGet (" CodeModule " ).OleProcedure (" InsertLines " , 3 , " End Sub " );
vMSExcel.OleProcedure (" Run " , " laMacro " );
vXLWorkbook.OlePropertyGet (" VBProject " ).OlePropertyGet (" VBComponents " ).OleFunction (" Remove " , VBComp);
|
Cette façon de faire est plutôt adaptée à l'execution de petites macros, voire de macros dont le code doit être rendu dynamique (cf. changeant selon certains paramètres saisis dans votre application C++).
|
Consultez les autres F.A.Q.
|
|
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2009 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.