Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Visual C++ MFC ile adres mektup birleştirme gerçekleştirmek için Microsoft Word otomatikleştirme

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:220911
Özet
Bu makalede, Microsoft Visual C++ ve Microsoft Foundation Classes (MFC) Otomasyonu'nu kullanarak bir Microsoft Word belgesi oluşturulur ve gösterilmiştir.
Daha fazla bilgi
Bu makalede, Microsoft Visual Basic kullanarak aynı işlemi açıklayan bir Microsoft Bilgi Bankası makalesi parallels. Visual Basic Word'den otomatikleştirme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
220607Microsoft Word'ün Visual Basic'den adres-mektup birleştirmeyi gerçekleştirdiğinizde otomatikleştirme

Otomasyon örneği oluşturma

  1. 1 Ile 12 aşağıdaki Microsoft Bilgi Bankası makalesindeki adımları izleyin:
    178749MFC ve bir tür kitaplığı'nı kullanarak bir Otomasyon Proje oluşturma
    Not Adım 9'da, doğru tür kitaplığı için bir otomatikleştirme Word sürümünü belirleyin. Bulma hakkında bilgi için aşağıdaki başvuru bölümüne bakın kitaplığı doğru olarak yazın.
  2. Ekleme deyimi (msword8.h, msword9.h veya msword.h) oluşturulmuş üstbilgi dosyası için AutoProjectDlg.cpp stdafx.h için ekleme deyimi ekleyin. Word 97 için bir örnek:
       #include "stdafx.h"   #include "msword8.h"					
  3. Aşağıda gösterildiği gibi göründüğü CAutoProjectDlg::OnRun yöntemine Otomasyon kodu ekleyin:
    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. Aşağıdaki kod yukarıda verilen kod ekleme adım 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. Derleme ve programınızı çalıştırın. Çalıştır</a1> düğmesini ve Microsoft Word başlatın ve örnek mektup görüntüler. Not bazı yöntemler, Word 2000 ve Word 2002 ile değiştirdiniz. Bu değişiklikler hakkında daha fazla bilgi için "Başvurular" bölümüne bakın.
Referanslar

Microsoft Word 2000 ve Microsoft Word 2002 otomatikleştirme notları

Microsoft Word 2000 ve Microsoft Word 2002 için bazı yöntemler ve özellikler değişti. Tür kitaplığı Word ile birlikte, bu makaledeki örnek kodu kullanma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
224925Tür kitaplıkları Office için yeni bir sürüm ile değişebilir
Office Otomasyonu ile ilgili daha fazla bilgi için Microsoft Office geliştirme Destek sitesini ziyaret edin:
WD2003 WD2007

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 220911 - Son İnceleme: 05/14/2007 18:18:49 - Düzeltme: 3.2

Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0, Microsoft Office Word 2007, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition, Microsoft Word 97 Standard Edition

  • kbmt kbautomation kbhowto KB220911 KbMttr
Geri bildirim