Miután létrehoztunk egy új C# alkalmazást, fel kell vennünk egy hivatkozást a Word programra. Ehhez válasszuk a Project – Add Reference menüpontot. A megjelenő ablakban kattintsunk a COM fülre, a listában válasszuk ki a Microsoft Word 10.0 Object Library-t. Ezután kattintsunk a Select, majd az OK gombra.
A Word eléréséhez deklarálnunk kell egy objektumot.
private Word.ApplicationClass wordApp;
A Form1 Load eseményében csatlakozunk a Word-höz.
wordApp = new Word.ApplicationClass();
A körlevél-varázsló eseményeihez eseménykezelőket rendelünk. Ezt az alábbi formában tehetjük meg.
wordApp.MailMergeAfterMerge += new Word.ApplicationEvents3_MailMergeAfterMergeEventHandler(this.AfterMergeEvent);
Az egyes események függvényeiben programozzuk le, hogy mi történjen akkor, ha az adott esemény létrejön. Ebben a példában naplózzuk az eseményeket.
A körlevél-varázsló megnyitásakor láthatóvá tesszük a Microsoft Word-öt.
Ezután létrehozunk egy új dokumentumot.
wordApp.Documents.Add(ref m, ref m, ref m, ref m);
A körlevél kezelésével foglalkozó MailMerge objektumot a dokumentum MailMerge property-jén keresztül érhetjük el.
A körlevél-varázsló elindítását a ShowWizard metódus meghívásával kérhetjük.
object initialState = 1;
object showIt = true;
wordApp.ActiveDocument.MailMerge.ShowWizard(ref initialState, ref showIt, ref showIt, ref showIt, ref showIt, ref showIt, ref showIt);
A varázsló összesen hat ablakból áll. Mi dönthetjük el, hogy a varázsló mely ablakokat jelenítse meg, valamint hogy melyik ablaktól kezdődjön. Az ablakok sorszámozva vannak, a számozás a következő formában jelenik meg: Lépés: 1/6. Ha nem jelenítjük meg a varázsló összes ablakát, akkor a számozás természetesen módosul.
A ShowWizard függvény első paraméterében kell megadnunk, hogy a varázsló melyik ablakkal induljon. A további hat paraméter az egyes ablakok megjelenítésére vonatkozik. Igaz érték esetén az adott ablak megjelenik, hamis érték esetén kihagyásra kerül.
A varázsló hat ablaka sorrendben a következő:
- Dokumentumtípus kiválasztása.
- Az alapul szolgáló dokumentum megadása.
- Címzettek kiválasztása.
- A levél megírása.
- A levelek megtekintése.
- Az egyesítés befejezése.
Az egyesítés befejezése ablakban lehetőségünk van egy saját opció megjelenítésére is. A megjelenő opció feliratát a ShowSendToCustom property-n keresztül állíthatjuk be.
wordApp.ActiveDocument.MailMerge.ShowSendToCustom = "Saját művelet (Word bezárása)";
A ShowSendToCustom property értékét csak a varázsló elindítása után módosíthatjuk.
Saját opciónk eseménykezelőjét a MailMergeWizardSendToCustom eseményében programozhatjuk le.
A MailMerge objektumhoz a következő események tartoznak:
| Esemény |
Az esemény létrejötte. |
| MailMergeAfterMerge |
Akkor jön létre, amikor a levelek egyesítése elkészült. |
| MailMergeAfterRecordMerge |
Akkor jön létre, amikor egy levél elkészítése megtörtént. |
| MailMergeBeforeMerge |
A levelek egyesítése előtt jön létre. |
| MailMergeDataSourceLoad |
Akkor jön létre, amikor a Word betölti az adatforrást. |
| MailMergeDataSourceValidate |
Akkor jön létre, amikor a felhasználó a címzettek megadásánál az érvényesítés feliratú gombra kattint. |
| MailMergeWizardSendToCustom |
Akkor jön létre, amikor a felhasználó a saját opciót választja ki a varázsló utolsó ablakában. |
A Word alkalmazást a Quit metódus meghívásával zárhatjuk be.
wordApp.Quit(ref m, ref m, ref m);