วิธีดำเนินการให้ดำเนินการจดหมายเวียนจาก Visual Basic Microsoft Word อัตโนมัติ

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 220607 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายวิธีใช้ Microsoft Word เพื่อสร้างเอกสารที่ผสานจดหมาย โดยใช้การทำงานอัตโนมัติจาก Microsoft Visual Basic

ข้อมูลเพิ่มเติม

มีสองวิธีในการควบคุมเซิร์ฟเวอร์ Automation ที่: โดยการใช้การรวมภายหลัง หรือ โดยใช้การรวมก่อนหน้า ด้วยการรวมภายหลัง วิธีไม่ถูกผูกไว้จนกว่าจะรันไทม์ และเซิร์ฟเวอร์ Automation ถูกประกาศเป็นวัตถุ สำหรับการรวมก่อนหน้า โปรแกรมประยุกต์ของคุณจะรับทราบถึงชนิดของวัตถุที่ถูกต้องที่จะทำการสื่อสารด้วยในขณะออกแบบ และสามารถประกาศวัตถุตามชนิดที่ระบุ ตัวอย่างนี้ใช้การรวมก่อนหน้า ซึ่งโดยส่วนใหญ่แล้ววิธีนี้ได้รับการพิจารณาว่าดีกว่าเนื่องจากทำให้เกิดประสิทธิภาพในการทำงานมากกว่าและความปลอดภัยดีกว่า

การผูกก่อนหน้ากับเซิร์ฟเวอร์ Automation คุณจำเป็นต้องการตั้งค่าการอ้างอิงไปยังไลบรารีชนิดของเซิร์ฟเวอร์นั้น ใน Visual Basic นี้เสร็จผ่านทางการอ้างอิง:กล่องโต้ตอบ เมื่อต้องการเปิดการอ้างอิง:กล่องโต้ตอบ คลิกอ้างอิง:ในการProjectเมนู สำหรับตัวอย่างนี้ คุณจำเป็นต้องเพิ่มการอ้างอิงไปยังไลบรารีชนิดสำหรับ Word ก่อนที่คุณสามารถเรียกใช้รหัส

การสร้างตัวอย่าง Automation

  1. เริ่ม Visual Basic และสร้างโครงการ EXE แบบมาตรฐานขึ้นใหม่ Form1 จะถูกสร้างขึ้นตามค่าเริ่มต้น
  2. เพิ่มคำCommandButtonควบคุมการ Form1
  3. ในการProjectเมนู คลิกอ้างอิง:เมื่อต้องการเปิดการอ้างอิง:กล่องโต้ตอบกล่อง
  4. เลือกการไลบรารีวัตถุ Microsoft Word 11.0เมื่อต้องการสร้างการอ้างอิงไปยังไลบรารีชนิดของ Microsoft Office Word 2003 สำหรับ Word 2002 เลือกวัตถุ Microsoft Word 10.0 ไลบรารี. สำหรับ Word 2000 เลือกวัตถุ Microsoft Word 9.0 ไลบรารี. สำหรับ Word 97 เลือกการไลบรารีวัตถุ Microsoft Word 8.0.
  5. คลิกตกลงเมื่อต้องการปิดการอ้างอิง:กล่องโต้ตอบ
  6. ในหน้าต่างการโค้ดสำหรับ Form1 เพิ่มรหัสต่อไปนี้:
    Option Explicit
    Dim wrdApp As Word.Application
    Dim wrdDoc As Word.Document
    
    Private Sub Command1_Click()
      Dim wrdSelection As Word.Selection
      Dim wrdMailMerge As Word.MailMerge
      Dim wrdMergeFields As Word.MailMergeFields
    
      Dim StrToAdd As String
      
    ' Create an instance of Word, and make it visible.
      Set wrdApp = CreateObject("Word.Application")
      wrdApp.Visible = True
      
    ' Add a new document.
    
      Set wrdDoc = wrdApp.Documents.Add
      wrdDoc.Select
      
      Set wrdSelection = wrdApp.Selection
      Set wrdMailMerge = wrdDoc.MailMerge
      
    ' Create the MailMerge Data file.
      CreateMailMergeDataFile
      
    ' Create a string, and insert it into the document.
      StrToAdd = "State University" & vbCr & _
               "Electrical Engineering Department"
      wrdSelection.ParagraphFormat.Alignment = wdAlignParagraphCenter
      wrdSelection.TypeText StrToAdd
       
      InsertLines 4
       
    ' Insert merge data.
      wrdSelection.ParagraphFormat.Alignment = wdAlignParagraphLeft
      Set wrdMergeFields = wrdMailMerge.Fields
      wrdMergeFields.Add wrdSelection.Range, "FirstName"
      wrdSelection.TypeText " "
      wrdMergeFields.Add wrdSelection.Range, "LastName"
      wrdSelection.TypeParagraph
    
      wrdMergeFields.Add wrdSelection.Range, "Address"
      wrdSelection.TypeParagraph
      wrdMergeFields.Add wrdSelection.Range, "CityStateZip"
        
      InsertLines 2
      
    ' Right align the line, and insert a date field
    ' with the current date.
      wrdSelection.ParagraphFormat.Alignment = _
            wdAlignParagraphRight
      wrdSelection.InsertDateTime _
            DateTimeFormat:="dddd, MMMM dd, yyyy", _
            InsertAsField:=False
            
      InsertLines 2
      
    ' Align the rest of the document.
      wrdSelection.ParagraphFormat.Alignment = _
            wdAlignParagraphJustify
    
      
    
      wrdSelection.TypeText "Dear "
      wrdMergeFields.Add wrdSelection.Range, "FirstName"
      wrdSelection.TypeText ","
      InsertLines 2
      
      ' Create a string, and insert it into the document.
      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."
      wrdSelection.TypeText StrToAdd
      
      InsertLines 2
      
      ' Insert a new table with 9 rows and 4 columns.
      wrdDoc.Tables.Add wrdSelection.Range, NumRows:=9, _
           NumColumns:=4
      With wrdDoc.Tables(1)
        ' Set the column widths
        .Columns(1).SetWidth 51, wdAdjustNone
        .Columns(2).SetWidth 170, wdAdjustNone
        .Columns(3).SetWidth 100, wdAdjustNone
        .Columns(4).SetWidth 111, wdAdjustNone
        ' Set the shading on the first row to light gray.
        .Rows(1).Cells.Shading.BackgroundPatternColorIndex = _
           wdGray25
        ' Format the first row in bold.
        .Rows(1).Range.Bold = True
        ' Center the text in Cell (1,1).
        .Cell(1, 1).Range.Paragraphs.Alignment = wdAlignParagraphCenter
        
        ' Fill each row of the table with data.
        FillRow wrdDoc, 1, "Class Number", "Class Name", "Class Time", _
           "Instructor"
        FillRow wrdDoc, 2, "EE220", "Introduction to Electronics II", _
           "1:00-2:00 M,W,F", "Dr. Jensen"
        FillRow wrdDoc, 3, "EE230", "Electromagnetic Field Theory I", _
           "10:00-11:30 T,T", "Dr. Crump"
        FillRow wrdDoc, 4, "EE300", "Feedback Control Systems", _
           "9:00-10:00 M,W,F", "Dr. Murdy"
        FillRow wrdDoc, 5, "EE325", "Advanced Digital Design", _
           "9:00-10:30 T,T", "Dr. Alley"
        FillRow wrdDoc, 6, "EE350", "Advanced Communication Systems", _
           "9:00-10:30 T,T", "Dr. Taylor"
        FillRow wrdDoc, 7, "EE400", "Advanced Microwave Theory", _
           "1:00-2:30 T,T", "Dr. Lee"
        FillRow wrdDoc, 8, "EE450", "Plasma Theory", _
           "1:00-2:00 M,W,F", "Dr. Davis"
    
        FillRow wrdDoc, 9, "EE500", "Principles of VLSI Design", _
           "3:00-4:00 M,W,F", "Dr. Ellison"
      End With
      
      ' Go to the end of the document.
      wrdApp.Selection.GoTo wdGoToLine, wdGoToLast
      InsertLines 2
      
      ' Create a string, and insert it into the document.
      StrToAdd = "For additional information regarding the " & _
    
                 "Department of Electrical Engineering, " & _
                 "you can visit our Web site at "
      wrdSelection.TypeText StrToAdd
      ' Insert a hyperlink to the Web page.
      wrdSelection.Hyperlinks.Add Anchor:=wrdSelection.Range, _
         Address:="http://www.ee.stateu.tld"
      ' Create a string, and insert it into the document.
      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 " & _
                 "555-1212." & vbCr & vbCr & _
                 "Sincerely," & vbCr & vbCr & _
                 "Kathryn M. Hinsch" & vbCr & _
                 "Department of Electrical Engineering" & vbCr
      wrdSelection.TypeText StrToAdd
       
    ' Perform mail merge.
      wrdMailMerge.Destination = wdSendToNewDocument
      wrdMailMerge.Execute False
      
    ' Close the original form document.
      wrdDoc.Saved = True
      wrdDoc.Close False
      
    ' Notify user we are done.
      MsgBox "Mail Merge Complete.", vbMsgBoxSetForeground
      
    ' Release references.
      Set wrdSelection = Nothing
      Set wrdMailMerge = Nothing
      Set wrdMergeFields = Nothing
      Set wrdDoc = Nothing
      Set wrdApp = Nothing
      
    ' Clean up the temp file.
      Kill "C:\DataDoc.doc"
    End Sub
    
    Public Sub InsertLines(LineNum As Integer)
      Dim iCount As Integer
    
    ' Insert "LineNum" blank lines.
      For iCount = 1 To LineNum
        wrdApp.Selection.TypeParagraph
      Next iCount
    End Sub
    
    Public Sub FillRow(Doc As Word.Document, Row As Integer, _
                       Text1 As String, Text2 As String, _
                       Text3 As String, Text4 As String)
                       
      With Doc.Tables(1)
        ' Insert the data into the specific cell.
        .Cell(Row, 1).Range.InsertAfter Text1
        .Cell(Row, 2).Range.InsertAfter Text2
        .Cell(Row, 3).Range.InsertAfter Text3
        .Cell(Row, 4).Range.InsertAfter Text4
      End With
    End Sub
    
    Public Sub CreateMailMergeDataFile()
      Dim wrdDataDoc As Word.Document
      Dim iCount As Integer
      
    ' Create a data source at C:\DataDoc.doc that contains the field data.
      wrdDoc.MailMerge.CreateDataSource Name:="C:\DataDoc.doc", _
            HeaderRecord:="FirstName, LastName, Address, CityStateZip"
    ' Open the file to insert the data.
      Set wrdDataDoc = wrdApp.Documents.Open("C:\DataDoc.doc")
      For iCount = 1 To 2
        wrdDataDoc.Tables(1).Rows.Add
      Next iCount
    ' Fill in the data.
      FillRow wrdDataDoc, 2, "Steve", "DeBroux", _
            "4567 Main Street", "Buffalo, NY  98052"
      FillRow wrdDataDoc, 3, "Jan", "Miksovsky", _
            "1234 5th Street", "Charlotte, NC  98765"
      FillRow wrdDataDoc, 4, "Brian", "Valentine", _
            "12348 78th Street  Apt. 214", "Lubbock, TX  25874"
    ' Save and close the file.
      wrdDataDoc.Save
      wrdDataDoc.Close False
    End Sub
    					
  7. กดแป้น F5 และคลิกปุ่มเพื่อเรียกใช้ตัวอย่าง

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานอัตโนมัติของ Office แวะไปที่ไซต์การสนับสนุน Microsoft Office พัฒนาต่อไปนี้:
http://support.microsoft.com/ofd

คุณสมบัติ

หมายเลขบทความ (Article ID): 220607 - รีวิวครั้งสุดท้าย: 12 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
Keywords: 
kbautomation kbhowto kbmt KB220607 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:220607

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com