Momentálne ste offline a čaká sa, kým sa znova pripojíte na internet

Váš prehliadač nie je podporovaný

Ak chcete lokalitu používať, aktualizujte svoj prehliadač.

Aktualizovať na najnovšiu verziu Internet Explorera

Automatizácia programu Microsoft Word hromadnej korešpondencie pomocou Visual C++ a MFC

DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:220911
SUHRN
Tento článok ukazuje ako vytvoriť a manipulovať s Dokument programu Microsoft Word použitím automatizácie z Microsoft Visual C++ a Microsoft nadácie tried (MFC).
DALSIE INFORMACIE
Paralely tohto článku z databázy Microsoft Knowledge Base článok, ktorý Popisuje toho istého procesu, programu Microsoft Visual Basic. Ďalšie informácie o automatizácie slovo od jazyka Visual Basic nájdete po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
220607Automatizácia Microsoft Word bude vykonávať hromadnej korešpondencie z programu Visual Basic

Budova automatizácia vzorky

  1. Postupujte podľa krokov 1 až 12 v nasledujúcich Microsoft Článok databázy Knowledge Base:
    178749 Ako vytvoriť projektu automatizácia pomocou MFC a type library
    Poznámka: V kroku 9 zvoľte správny typ knižnice pre verziu Slovo, ktoré chcete. Pozri odkazy nižšie v časti informácie o nájsť správne type library.
  2. Pridať zahŕňajú vyhlásenie hlavička súboru, ktorý bol vytvorený vyššie (buď msword8.h, msword9.h alebo msword.h) v AutoProjectDlg.cpp po zahrnúť výkaz pre stdafx.h. Príklad pre program Word 97 by:
       #include "stdafx.h"   #include "msword8.h"					
  3. Pridať automatizácie kód CAutoProjectDlg::OnRun metóda tak, aby Zdá sa, ako je uvedené nižšie:
    void CAutoProjectDlg::OnRun(){	_Application oWord;	Documents oDocs;	_Document oDoc;	Selection oSelection;	Paragraphs oParagraphs;	Tables oTables;	Table oTable;	Range oRange;	Columns oColumns;	Column oColumn;	Rows oRows;	Row oRow;	Cells oCells;	Cell oCell; 	Shading oShading;	Hyperlinks oHyperlinks;	MailMerge oMailMerge;	MailMergeFields oMailMergeFields;	COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),		        vtTrue((short)TRUE),				vtFalse((short)FALSE);	CString StrToAdd;	// Create an instance of Word	if (!oWord.CreateDispatch("Word.Application")) {		AfxMessageBox("Word failed to start!");	} else {	// Set the visible property	oWord.SetVisible(TRUE);	// Add a new document	oDocs = oWord.GetDocuments();	oDoc = oDocs.Add(vtOptional,vtOptional);	CreateMailMergeDataFile(&oWord,&oDoc);	// Add the address header	StrToAdd = "State University\r\nElectrical Engineering " \ 		       "Department";	oSelection = oWord.GetSelection();	oParagraphs = oSelection.GetParagraphs();	oParagraphs.SetAlignment(1);  // 1 = wdAlignParagraphCenter  	oSelection.TypeText(StrToAdd);	InsertLines(&oSelection,4);	oParagraphs.SetAlignment(0);  // 0 = wdAlignParagraphLeft	oMailMerge = oDoc.GetMailMerge();	oMailMergeFields = oMailMerge.GetFields();	oMailMergeFields.Add(oSelection.GetRange(),"FirstName");	oSelection.TypeText(" ");	oMailMergeFields.Add(oSelection.GetRange(),"LastName");	oSelection.TypeParagraph();	oMailMergeFields.Add(oSelection.GetRange(),"Address");	oSelection.TypeParagraph();	oMailMergeFields.Add(oSelection.GetRange(),"CityStateZip");	InsertLines(&oSelection,4);	// Set the paragraph alignment to Right justified	oParagraphs = oSelection.GetParagraphs();	oParagraphs.SetAlignment(2);  // 2 = wdAlignParagraphRight	// Insert the current date	oSelection.InsertDateTime(COleVariant("dddd, MMMM dd, yyyy"),\ 		 vtFalse,vtOptional);	InsertLines(&oSelection,2);	// Reset the justification to Justify	oParagraphs = oSelection.GetParagraphs();	oParagraphs.SetAlignment(3);  // 3 = wdAlignParagraphJustify	oSelection.TypeText("Dear ");	oMailMergeFields.Add(oSelection.GetRange(),"FirstName");	oSelection.TypeText(",");	InsertLines(&oSelection,2);	// Add the body of the message	StrToAdd = "Thank you for your recent request for next " \ 	       "semester's class schedule for the Electrical " \ 	       "Engineering Department.  Enclosed with this letter " \ 	       "is a booklet containing all the classes offered " \ 	       "next semester at State University.  Several new " \ 	       "classes will be offered in the Electrical " \    	       "Engineering Department next semester.  These " \ 	       "classes are listed below.";	oSelection.TypeText(StrToAdd);	InsertLines(&oSelection,2);		// Add a new table with 9 rows and 4 columns	oRange = oSelection.GetRange();	oTables = oDoc.GetTables();	oTable = oTables.Add(oRange,9,4);	// Set the width of each column	oColumns = oTable.GetColumns();	oColumn = oColumns.Item(1);	oColumn.SetWidth(51.0,0);  // 0 = wdAdjustNone	oColumn = oColumns.Item(2);	oColumn.SetWidth(198.0,0);  // 0 = wdAdjustNone	oColumn = oColumns.Item(3);	oColumn.SetWidth(100.0,0);  // 0 = wdAdjustNone	oColumn = oColumns.Item(4);	oColumn.SetWidth(111.0,0);  // 0 = wdAdjustNone	// Set the shading for row 1 to wdGray25	oRows = oTable.GetRows();	oRow = oRows.Item(1);	oCells = oRow.GetCells();	oShading = oCells.GetShading();	oShading.SetBackgroundPatternColorIndex(16); // 16 = wdGray25	// Turn on BOLD for the first row	oRange = oRow.GetRange();	oRange.SetBold(TRUE);	// Set the alignment for cell (1,1) to center	oCell = oTable.Cell(1,1);	oRange = oCell.GetRange();	oParagraphs = oRange.GetParagraphs();	oParagraphs.SetAlignment(1);  // 1 = wdAlignParagraphCenter	// Fill in the class schedule data	FillRow(&oTable,1,"Class Number","Class Name",\ 		"Class Time","Instructor");		FillRow(&oTable,2, "EE220", "Introduction to Electronics II", \ 		"1:00-2:00 M,W,F", "Dr. Jensen");	FillRow(&oTable,3, "EE230", "Electromagnetic Field Theory I", \ 		"10:00-11:30 T,T", "Dr. Crump");	FillRow(&oTable,4, "EE300", "Feedback Control Systems", \ 		"9:00-10:00 M,W,F", "Dr. Murdy");	FillRow(&oTable,5, "EE325", "Advanced Digital Design", \ 		"9:00-10:30 T,T", "Dr. Alley");	FillRow(&oTable,6, "EE350", "Advanced Communication Systems", \ 		"9:00-10:30 T,T", "Dr. Taylor");	FillRow(&oTable,7, "EE400", "Advanced Microwave Theory", \ 		"1:00-2:30 T,T", "Dr. Lee");	FillRow(&oTable,8, "EE450", "Plasma Theory", \ 		"1:00-2:00 M,W,F", "Dr. Davis");	FillRow(&oTable,9, "EE500", "Principles of VLSI Design", \ 		"3:00-4:00 M,W,F", "Dr. Ellison");	// Go to the end of the document	oSelection.GoTo(COleVariant((short)3), // 3 = wdGoToLine	COleVariant((short)-1),vtOptional,vtOptional);  // -1 = wdGoToLast	InsertLines(&oSelection,2);	// Add closing text	StrToAdd = "For additional information regarding the " \              "Department of Electrical Engineering, " \              "you can visit our website at ";	oSelection.TypeText(StrToAdd);	// Add a hyperlink to the homepage	oHyperlinks = oSelection.GetHyperlinks();	oHyperlinks.Add(oSelection.GetRange(),\ 		COleVariant("http://www.ee.stateu.tld"),vtOptional);	// Finish adding closing text	StrToAdd = ".  Thank you for your interest in the classes " \              "offered in the Department of Electrical " \              "Engineering.  If you have any other questions, " \              "please feel free to give us a call at (999) " \              "555-1212.\r\n\r\n" \              "Sincerely,\r\n\r\n" \              "Kathryn M. Hinsch\r\n" \              "Department of Electrical Engineering\r\n";	oSelection.TypeText(StrToAdd);	// Perform mail merge	oMailMerge.SetDestination(0); // 0 = wdSendToNewDocument	oMailMerge.Execute(vtFalse);	// Close the original form document	oDoc.SetSaved(TRUE);	oDoc.Close(vtFalse,vtOptional,vtOptional);  	}}					
  4. Vložte nasledujúci kód vyššie v kóde, ktorý je uvedený v kroku 3:
    void InsertLines(Selection *pSelection, int NumLines){	int iCount;	// Insert NumLines blank lines	for (iCount = 1; iCount <= NumLines; iCount++)		pSelection->TypeParagraph();}void FillRow(Table *pTable,int Row, CString Text1, 			 CString Text2, CString Text3, CString Text4){	Cell oCell;	Range oRange;	// Insert data into the specific cell	oCell = pTable->Cell(Row,1);	oRange = oCell.GetRange();	oRange.InsertAfter(Text1);	oCell = pTable->Cell(Row,2);	oRange = oCell.GetRange();	oRange.InsertAfter(Text2);	oCell = pTable->Cell(Row,3);	oRange = oCell.GetRange();	oRange.InsertAfter(Text3);	oCell = pTable->Cell(Row,4);	oRange = oCell.GetRange();	oRange.InsertAfter(Text4);}void CreateMailMergeDataFile(_Application *pApp,_Document *pDoc){  _Document oDataDoc;  MailMerge oMailMerge;  Documents oDocs;  Tables oTables;  Table oTable;  Rows oRows;  int iCount;  COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),				vtFalse((short)FALSE);    // Create a data source at C:\DataDoc.doc containing the field data  oMailMerge = pDoc->GetMailMerge();  oMailMerge.CreateDataSource(COleVariant("C:\\DataDoc.doc"), \         vtOptional,vtOptional, \         COleVariant("FirstName, LastName, Address,CityStateZip"),\         vtOptional, vtOptional,vtOptional,vtOptional,vtOptional);  // Open the file to insert data  oDocs = pApp->GetDocuments();  oDataDoc = oDocs.Open(COleVariant("C:\\DataDoc.doc"), \        vtOptional,vtOptional,vtOptional,vtOptional,\        vtOptional,vtOptional,vtOptional,vtOptional,\        vtOptional);  oTables = oDataDoc.GetTables();  oTable = oTables.Item(1);  oRows = oTable.GetRows();  for (iCount=1; iCount<=2; iCount++)      oRows.Add(vtOptional);  // Fill in the data  FillRow(&oTable, 2, "Steve", "DeBroux", \         "4567 Main Street", "Buffalo, NY  98052");  FillRow(&oTable, 3, "Jan", "Miksovsky", \         "1234 5th Street", "Charlotte, NC  98765");  FillRow(&oTable, 4, "Brian", "Valentine", \         "12348 78th Street  Apt. 214", "Lubbock, TX  25874");  // Save and close the file  oDataDoc.Save();  oDataDoc.Close(vtFalse,vtOptional,vtOptional);}					
  5. Zostavovať a spustiť program. Kliknite na Spustiť tlačidlo, a Program Microsoft Word by mala začať a zobraziť ukážku list. Všimnite si, že niektoré metódy zmenili s Word 2000 a Word 2002. Ďalšie informácie o týchto zmenách nájdete v časti „odkazy".
ODKAZY

Poznámky pre automatizáciu program Microsoft Word 2000 a Microsoft Word 2002

Niektoré metódy a vlastnosti zmenili programu Microsoft Word 2000 a Microsoft Word 2002. Ďalšie informácie o používaní vzorového kódu v tomto článku spolu s knižnica typu Word po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
224925Typ knižnice pre Office môže zmeniť s novou verziou
Ďalšie informácie o automatizácia kancelárskych, navštívte Microsoft Office Development podporu lokalite:
WD2003 WD2007

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 220911 – Posledná kontrola: 10/21/2011 14:29:00 – Revízia: 2.0

  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • kbautomation kbhowto kbmt KB220911 KbMtsk
Pripomienky
col) + "//c.microsoft.com/ms.js'><\/script>"); p;t=">