Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > MS Office > Word > Gestion de l'application
        Comment ouvrir une application Word ?
        Comment ouvrir un nouveau document Word ?
        Comment ouvrir un document Word existant ?
        Comment utiliser la fonction 'Enregister sous...' de Word ?
        Comment sauvegarder un document Word ?
        Comment fermer un document Word ?
        Comment quitter Word ?
        Comment imprimer un exemplaire du document Word ?
        Comment imprimer plusieurs exemplaires d'un document Word ?
        Comment avoir un aperçu avant impression ?
        Comment changer le mode d'affichage ?
        Comment avoir différents modes d'affichage ?
        Comment connaître le numéro de version Word que l'on utilise ?



Comment ouvrir une application Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, Alain Malval
Cette procédure permet de créer une Instance de Word.
Dans le try on récupére l'instance Word si il est chargé.
Le catch(...) permet de traiter le cas Word non chargé, et donc de le charger.
Puis on rend l'application Word visible.

Nous allons manipuler Word dans le cadre de son pilotage OLE, et donc tenter de récupérer l'instance active.
Le Variant vMSWord sera initialisé avec cette valeur et permettra par la suite de manipuler l'ensemble des éléments propres à Word.

    Variant vMSWord;
    try
    {
      vMSWord = Variant::GetActiveObject("Word.Application");
    }
    catch(...)
    {
      vMSWord = Variant::CreateObject("Word.Application");
    }
    vMSWord.OlePropertySet("Visible", true); // ("Visible", false)

Comment ouvrir un nouveau document Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker
Cette procédure permet de créer un nouveau document à partir de l'instance de Word et d'afficher une feuille vierge.

    Variant vWDocuments, vWDocument;
    vWDocuments = vMSWord.OlePropertyGet("Documents");
    // ici on ouvre le document avec une feuille vierge
    vWDocument = vWDocuments.OleFunction("Add");

Comment ouvrir un document Word existant ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker
Cette procédure permet de d'ouvrir un document Word existant.

Important : il est préférable de déclarer le nom du fichier et les differents paramètres de la fonction Open dans des variables.

Les variables non utilisées sont déclarées "Unassigned".
Nous allons travailler sur le Variant représentant l'instance du document.

    Variant vFileName, vLink, vReadOnly, vFormat, vReadPass, vWDocuments, vWDocument;
    vFileName = "c:\\book1.doc";
    vLink = Unassigned;
    vReadOnly = false; // lecture seule
    vFormat = Unassigned;
    vReadPass = "MotDePasse"; // mot de passe du document
    vWDocuments = vMSWord.OlePropertyGet("Documents");
    // ici on charge un document sur la feuille
    vWDocument = vWDocuments.OleFunction("Open", vFileName, vLink, vReadOnly, vFormat, vReadPass);

Comment utiliser la fonction "Enregister sous..." de Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker
Cette procédure permet de sauvegarder le document sous le nom souhaité.

Important : il est préférable de déclarer le nom du fichier de la fonction Saveas dans une variable.

L'objet cible est un Variant (vWDocument) correspondant au document à sauver.

    Variant vFileName;
    vFileName = "c:\\book1.doc";
    vWDocument.OleProcedure("Saveas", vFileName);

Comment sauvegarder un document Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker

Cette procédure permet de sauvegarder le document avec le nom donné à l'ouverture.

L'objet cible est un Variant (vWDocument) correspondant au document à sauver.

    vWDocument.OleProcedure("Save");

Comment fermer un document Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker

Cette procédure permet de fermer le document.

Nous allons travailler sur le Variant représentant l'instance du document.

    Variant vMSWord;
    vWDocuments.OleFunction("Close");
    // on libere les Variants
    vMSWord = Unassigned;

Comment quitter Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker

Cette procedure permet de quitter Word.

Nous allons travailler sur le Variant représentant l'instance de Word.

    Variant vMSWord;
    vMSWord.OleFunction("Quit");
    // on libere les Variants
    vMSWord = Unassigned;

Comment imprimer un exemplaire du document Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker

Cette procédure permet d'imprimer le document.


    vWDocument.OleProcedure("PrintOut");

    vMSWord.OleProcedure("PrintOut");

Comment imprimer plusieurs exemplaires d'un document Word ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker

Cette procédure permet d'imprimer plusieurs exemplaires du document.


    Procedure ImprimerPage
    //InstanceDeWord.printout(copies := NbrCopie);
 
    // ("PrintOut", NbrCopie, Collate)
    vMSWord.OleProcedure("PrintOut", 2, true); // ("PrintOut", NbrCopie, Collate)
 
    // ("PrintOut", wdPrintRangeOfPages, NbrCopie, Collate)
    vMSWord.OleProcedure("PrintOut", 4, 1, 2);

Comment avoir un aperçu avant impression ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

Cette procédure permet d'avoir un aperçu avant impression.


    // on ouvre l'apercu avant impression
    vWDocument.OleProcedure("PrintPreview");
    
    // on ferme l'apercu avant impression
    vWDocument.OleProcedure("ClosePrintPreview");

Comment changer le mode d'affichage ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, firejocker

Cette procédure permet de forcer un mode d'affichage.

Il existe plusieurs modes dont :
  • le mode plan : forcer la propriété "Type" à 2.
  • le mode page : forcer la propriété "Type" à 3.

    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("View").OlePropertySet("Type", 2);
    // ou
    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("View").OlePropertySet("Type", 3);
Remarque : si on souhaite une entête, il faut chosir le mode 3. Pour les autres modes voir Comment avoir différents modes d'affichage ?

lien : faq Comment avoir différents modes d'affichage ?

Comment avoir différents modes d'affichage ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, Corfoudiou

Voici une liste des différents modes d'affichage :

    //wdNormalView:
    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View").
    OlePropertySet("Type", 1);
 
    //wdOutlineView:
    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View").
    OlePropertySet("Type", 2);
 
    //wdPageView:
    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View").
    OlePropertySet("Type", 3);
 
    //wdPrintPreview:
    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View").
    OlePropertySet("Type", 4);
 
    //wdPrintPreview:
    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View").
    OlePropertySet("Type", 5);
 
    //wdOnlineView:
    vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View").
    OlePropertySet("Type", 6);

Comment connaître le numéro de version Word que l'on utilise ?
Créé le 22/11/2010[haut]
auteurs : blondelle, pottiez

Cette procédure permet de connaître le numéro de version Word que l'on utilise, ceci peut être utile car certaines fonctions ont été complétées avec les nouvelles versions.

String version_word;
// connaître le numéro de version Word que l'on utilise
version_word = vMSWord.OlePropertyGet("Version");


Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

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.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web