1 2 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