Automation Word : objet find. [c++ MFC] - C++ - Programmation
Marsh Posté le 06-10-2005 à 18:06:18
je vois pas ou est le problème... dés l'instant où tu as crée ton objet Word.Application ou Excel.Application, tu as accés à toutes leurs méthodes.
pour la doc, voir la référence VBA de chaque logiciel, c'est aussi utilisable en C++
Marsh Posté le 06-10-2005 à 18:19:37
ben si....
par exemple, en vba,
Code :
|
ben pas de problèmes.... le tout est de remettre cela en cpp...
Bon, on a une classe Find. Donc, je suppose que l'on peut écrire
Code :
|
Ensuite, c'est la méthode execute de l'objet find qui plante... impossible de faire quoi que cela soit... En fait, j'ai beau essayer em me basant sur les exemples de la MSDN, j'ai toujours les mêmes messages d'erreur : soit "type incompatible" (je suis plus au boulot, et je penses que c'est bien cela), soit "méthode inconnue". Or, même ces messages d'erreur, je n'arrive pas à les identifier correctement en VBA....
Même en "traduisant" mot à mot certains exemples en VBA, cela ne fonctionne pas, je dois certainement louper une étape quelque part......
ps : je viens de commencer les automations mais je suis malgré tout pressé par le temps, mon programme doit être fini pour la fin du mois....
Marsh Posté le 06-10-2005 à 18:30:11
j'ai bien peur que ce ne soit pas aussi simple...
http://www.codeproject.com/useritems/HOOK_COM.asp
http://support.microsoft.com/kb/q141759/
Marsh Posté le 06-10-2005 à 20:49:55
Peut-être plus simple en tout cas car je travaille avec les MFC et je suis parti de cet exemple :
http://support.microsoft.com/defau [...] -us;252719
Simplement en créant une nouvelle classe automation avec le classwizard....
J'ai déjà - comme j'ai dit - créé celle d'excel (qui marche bien au demerant, sauf que j'ai ce problème de cases à griser que je n'avais pas avec excel 97, le problème c'est que l'on est passé à office 2003 et je suis bon pour me retaper tout le boulot...).
Je me retrouvre donc avec ce style de code :
Code :
|
j'abrège un peu (et je n'ai pas mon code devant moi...), et j'ai à ma disposition une classe Find, qui à une fonction membre execute, ayant les mêmes paramètres que le find de VBA (forcément). Comme je le dis, c'est certainement au niveau du type de paramètres que cela foire, puisque l'appli marche (ouverture de word, ouverture d'un document et d'autres petites choses comme la sélection), mais pas le find....
Si j'apelle Find.SetText (vu qu'en VBA on peut apeller find.text = "...." ), il me renvoie comme erreur "membre inconnu".
Si j'apelle Find.Execute (il y a une flopée de paramètres dont je ne rapelles plus les noms), même en mettant vOpt comme argument partout (COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);, donc pour les arguments facultatifs), il me répond "type incorrect" (je penses que c'est cela ou type incompatible).
Et j'ai beau retourner le problème dans tout les sens, rien à faire....
ps : j'avais développé de la quasi même manière une classe d'automation excel sous office97. Sauf que là, j'avais des #import pour les dlls, je n'était pas passé par les mfc pour générer les classes, et là, j'avoue bien que je bloque... pour le find! même utiliser word pour une correction automatique ou une recherche de synonymes marche sans problèmes.. allez savoir!! n'empêche que là, je suis dessus depuis deux jours et cela me br**** un sacré coup! Alors, s'il y a une âme charitable qui l'a déjà fait...
Marsh Posté le 06-10-2005 à 15:29:53
Bonjour à tous!
Je dois, pour mon boulot, programmer une classe d'automation word 2003. J'ai récemment fait une classe excel (2003), sans problèmes. Mais je bloque sérieusement sur quelques points :
- comment utiliser la classe find (word)? A chaque essai, je me chope une erreur de type "type incompatible" ou . Ce n'est pas faute d'avoir cherché, mais je n'ai rien trouvé.
- Comment, à l'aide des automations toujours, mais en excel, griser une case?
- Ou trouver de la doc a propos de tout cela?
Merci pour vos futures réponses!!!