| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 
 | 
Variant Appli, WordDoc, WordDocs, VBComp, vFileName;
int X;
Appli = Variant::GetActiveObject("Word.Application");
vFileName = "c:\\book1.doc";
WordDocs = Appli.OlePropertyGet("Documents");
WordDoc = WordDocs.OleFunction("Open", vFileName);
// on cree un module pour du code VB
VBComp =  WordDoc.OlePropertyGet("VBProject").OlePropertyGet("VBComponents").OleFunction("Add", 1);
// on renome le module sans espaces dans le nom
VBComp.OlePropertySet("Name", "MyModule");
VBComp.OlePropertyGet("CodeModule");
// on ecrit la macro dans le module cree
        X = VBComp.OlePropertyGet("CodeModule").OlePropertyGet("CountOfLines");
        VBComp.OlePropertyGet("CodeModule").OleProcedure("InsertLines", X + 1, "Sub laMacro()");
        VBComp.OlePropertyGet("CodeModule").OleProcedure("InsertLines", X + 2, "ActiveDocument.Content.Text =  ""Coucou"" ");
        VBComp.OlePropertyGet("CodeModule").OleProcedure("InsertLines", X + 3, "End Sub");
vMSWord.OleProcedure("Run", "laMacro");
//VBComp.OlePropertyGet("CodeModule").OleFunction("Run", "laMacro");
 // les deux fonctions ci dessous provoquent une erreur
VBComp.OlePropertyGet("CodeModule").OleFunction("DeleteLines", 3);
VBComp.OlePropertyGet("CodeModule").OleFunction("DeleteLines", 2);
VBComp.OlePropertyGet("CodeModule").OleFunction("DeleteLines", 1);
WordDoc.OlePropertyGet("VBProject").OlePropertyGet("VBComponents").OleFunction("Remove", VBComp); | 
Partager