كيفية أتمتة Word من Visual Basic.NET لإنشاء مستند جديد

للحصول على إصدار Microsoft Visual C#.NET من هذه المقالة، راجع 316384 .

للحصول على إصدار Microsoft Visual Basic 6.0 من هذه المقالة، راجع 313193 .

ملخص

توضح هذه المقالة خطوة بخطوة كيفية إنشاء مستند جديد في Word باستخدام التنفيذ التلقائي من Visual Basic.NET.

نموذج لتعليمة برمجية

يوضح نموذج التعليمة البرمجية في هذه المقالة كيفية القيام بما يلي:
  • إدراج الفقرات مع النص والتنسيق.
  • استعراض وتعديل مختلف النطاقات ضمن مستند.
  • إدراج الجداول وتنسيق جداول ملء الجداول بالبيانات.
  • إضافة تخطيط.
لإنشاء مستند Word جديد باستخدام التنفيذ التلقائي من Visual Basic.NET، اتبع الخطوات التالية:
  1. Microsoft Visual Studio.NET.بدء تشغيل من القائمة ملف ، انقر فوق جديد ومن ثم انقر فوق المشروع. ضمن أنواع المشروع انقر فوق مشاريع Visual Basic، ثم انقر فوق تطبيق Windows ضمن قوالب. يتم إنشاء Form1 افتراضياً.
  2. قم بإضافة مرجع إلى مكتبة كائنات Microsoft Word. للقيام بذلك، اتبع الخطوات التالية:
    1. من القائمة ' مشروع '، انقر فوق إضافة مرجع.
    2. ضمن علامة التبويب " COM "، تحديد موقع مكتبة كائنات Microsoft Word وانقر فوق تحديد.

      ملاحظة: Microsoft Office 2003 والإصدارات اللاحقة من Office يتضمن "تجميعات التوافق الأساسية" (PIAs). Microsoft Office XP لا يتضمن التقييمات الأولية للتنفيذ، ولكن قد يتم تحميل.
      لمزيد من المعلومات حول Office XP PIAs، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

      328912 Microsoft Office XP تجميعات التوافق الأساسية (PIAs) غير متوفرة للتحميل

    3. انقر فوق "موافق" في مربع الحوار إضافة مراجع لقبول التحديدات. إذا تلقيت موجه لإنشاء wrappers للمكتبات التي قمت بتحديدها، انقر فوق نعم.
  3. من القائمة عرض ، حدد مربع الأدوات لعرض مربع الأدوات ثم قم بإضافة زر إلى Form1.
  4. انقر نقراً مزدوجاً فوق Button1. يظهر إطار التعليمات البرمجية للنموذج.
  5. في إطار التعليمات البرمجية، استبدل التعليمة البرمجية التالية
        Private Sub Button1_Click(ByVal sender As System.Object, _      ByVal e As System.EventArgs) Handles Button1.Click

    End Sub
    بواسطة:
        Private Sub Button1_Click(ByVal sender As System.Object, _      ByVal e As System.EventArgs) Handles Button1.Click

    Dim oWord As Word.Application
    Dim oDoc As Word.Document
    Dim oTable As Word.Table
    Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
    Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph
    Dim oRng As Word.Range
    Dim oShape As Word.InlineShape
    Dim oChart As Object
    Dim Pos As Double

    'Start Word and open the document template.
    oWord = CreateObject("Word.Application")
    oWord.Visible = True
    oDoc = oWord.Documents.Add

    'Insert a paragraph at the beginning of the document.
    oPara1 = oDoc.Content.Paragraphs.Add
    oPara1.Range.Text = "Heading 1"
    oPara1.Range.Font.Bold = True
    oPara1.Format.SpaceAfter = 24 '24 pt spacing after paragraph.
    oPara1.Range.InsertParagraphAfter()

    'Insert a paragraph at the end of the document.
    '** \endofdoc is a predefined bookmark.
    oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
    oPara2.Range.Text = "Heading 2"
    oPara2.Format.SpaceAfter = 6
    oPara2.Range.InsertParagraphAfter()

    'Insert another paragraph.
    oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
    oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:"
    oPara3.Range.Font.Bold = False
    oPara3.Format.SpaceAfter = 24
    oPara3.Range.InsertParagraphAfter()

    'Insert a 3 x 5 table, fill it with data, and make the first row
    'bold and italic.
    Dim r As Integer, c As Integer
    oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 3, 5)
    oTable.Range.ParagraphFormat.SpaceAfter = 6
    For r = 1 To 3
    For c = 1 To 5
    oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
    Next
    Next
    oTable.Rows.Item(1).Range.Font.Bold = True
    oTable.Rows.Item(1).Range.Font.Italic = True

    'Add some text after the table.
    'oTable.Range.InsertParagraphAfter()
    oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
    oPara4.Range.InsertParagraphBefore()
    oPara4.Range.Text = "And here's another table:"
    oPara4.Format.SpaceAfter = 24
    oPara4.Range.InsertParagraphAfter()

    'Insert a 5 x 2 table, fill it with data, and change the column widths.
    oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 5, 2)
    oTable.Range.ParagraphFormat.SpaceAfter = 6
    For r = 1 To 5
    For c = 1 To 2
    oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
    Next
    Next
    oTable.Columns.Item(1).Width = oWord.InchesToPoints(2) 'Change width of columns 1 & 2
    oTable.Columns.Item(2).Width = oWord.InchesToPoints(3)

    'Keep inserting text. When you get to 7 inches from top of the
    'document, insert a hard page break.
    Pos = oWord.InchesToPoints(7)
    oDoc.Bookmarks.Item("\endofdoc").Range.InsertParagraphAfter()
    Do
    oRng = oDoc.Bookmarks.Item("\endofdoc").Range
    oRng.ParagraphFormat.SpaceAfter = 6
    oRng.InsertAfter("A line of text")
    oRng.InsertParagraphAfter()
    Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
    oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
    oRng.InsertBreak(Word.WdBreakType.wdPageBreak)
    oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
    oRng.InsertAfter("We're now on page 2. Here's my chart:")
    oRng.InsertParagraphAfter()

    'Insert a chart and change the chart.
    oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _
    ClassType:="MSGraph.Chart.8", FileName _
    :="", LinkToFile:=False, DisplayAsIcon:=False)
    oChart = oShape.OLEFormat.Object
    oChart.charttype = 4 'xlLine = 4
    oChart.Application.Update()
    oChart.Application.Quit()
    'If desired, you can proceed from here using the Microsoft Graph
    'Object model on the oChart object to make additional changes to the
    'chart.
    oShape.Width = oWord.InchesToPoints(6.25)
    oShape.Height = oWord.InchesToPoints(3.57)

    'Add text after the chart.
    oRng = oDoc.Bookmarks.Item("\endofdoc").Range
    oRng.InsertParagraphAfter()
    oRng.InsertAfter("THE END.")

    'All done. Close this form.
    Me.Close()

    End Sub
  6. أضف التعليمات البرمجية التالية إلى أعلى Form1.vb:
    Imports Word = Microsoft.Office.Interop.Word
  7. اضغط F5 لإنشاء البرنامج وتشغيله.
بعد اكتمال التعليمات البرمجية، فحص المستند الذي تم إنشاؤه لك. يحتوي المستند على صفحتين من فقرات منسقة وجداول تخطيط.

استخدام قالب

إذا كنت تستخدم أتمتة لإنشاء المستندات الموجودة في شكل موحد، يمكنك الاستفادة من بدء العملية باستخدام مستند جديد استناداً إلى قالب المنسقة مسبقاً. استخدام قالب مع عميل أتمتة Word ميزتين كبيرة عبر إنشاء مستند من أي شيء:
  • أن سيطرة أكبر على تنسيق ووضع الكائنات في المستندات الخاصة بك.
  • يمكنك إنشاء المستندات الخاصة بك باستخدام تعليمات برمجية أقل.
باستخدام قالب، يمكنك يمكن ضبط موضع الجداول والفقرات والكائنات الأخرى في المستند، بالإضافة تضمين تنسيق على هذه الكائنات. باستخدام "التنفيذ التلقائي"، يمكنك إنشاء مستند جديد استناداً إلى القالب الخاص بك باستخدام التعليمات البرمجية كما يلي:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
في القالب الخاص بك، يمكنك تحديد الإشارات المرجعية حيث أن عميل التنفيذ التلقائي الخاص بك يمكن تعبئة نص متغير في مكان محدد في المستند، كما يلي:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
ميزة أخرى لاستخدام قالب هي أنه يمكنك إنشاء وتخزين أنماط التنسيق الذي تريد تطبيقه في وقت التشغيل، كما يلي:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
-أو-
oWord.Selection.Style = "MyStyle"

المراجع

لمزيد من المعلومات حول استخدام Visual Basic.NET لأتمتة Microsoft Word، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

كيفية أتمتة Word تنفيذ دمج المراسلات من Visual Basic.NET 301656

لمزيد من المعلومات، راجع مواقع شبكة مطوري Microsoft (MSDN) التالي على الويب:
خصائص

رقم الموضوع: 316383 - آخر مراجعة: 19‏/01‏/2017 - المراجعة: 1

تعليقات