مشاركة عبر


كيفية القيام بما يلي: استبعاد علامات الفقرة عند إنشاء النطاقات

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.

نوع المشروع

  • مشروعات على مستوى المستند

  • مشروعات على مستوى التطبيق

إصدار Microsoft Office

  • Word 2007

  • Word 2010

عندما تقوم بإنشاء كائن Range معتمد على فقرة ما، كافة الأحرف غير المطبوعة مثل علامات الفقرة يتم تضمينها في النطاق. قد تحتاج إلى إدراج النص من فقرة مصدر إلى فقرة وجهة. إن لم تكن تريد تقسيم الفقرة الوجهة إلى فقرات منفصلة، فيجب عليك أولاً إزالة علامة الفقرة من الفقرة المصدر. بالإضافة إلى ذلك، بما أن معلومات تنسيق الفقرات يتم تخزينها داخل علامة الفقرة، فقد لا تحتاج إلى تضمين هذا عندما تقوم بإدراج النطاق في فقرة موجودة.

يقوم مثال الإجراء التالي بالتصريح بمتغيرَين اثنين من نوع string، وباسترداد محتويات الفقرتين الأولى والثانية في المستند النشط، ومن ثم يقوم بتبادل محتوياتهما. و يوضح المثال بعد ذلك إزالة علامة الفقرة من النطاق باستخدام الأسلوب MoveEnd وإدراج النص داخل الفقرة.

للتحكم فى بنية فقرة عند إدراج نص

  1. قم بإنشاء متغيرَي نطاق اثنين للفقرتين الأولى والثانية، وقم باسترداد محتوياتهما باستخدام الخاصية Text.

    يمكن استخدام مثال التعليمات البرمجية التالي في تخصيص على مستوى المستند.

    Dim firstRange As Word.Range = Me.Paragraphs(1).Range
    Dim secondRange As Word.Range = Me.Paragraphs(2).Range
    
    Dim firstString As String = firstRange.Text
    Dim secondString As String = secondRange.Text
    
    Word.Range firstRange = this.Paragraphs[1].Range; 
    Word.Range secondRange = this.Paragraphs[2].Range; 
    
    string firstString = firstRange.Text; 
    string secondString = secondRange.Text; 
    

    يمكن استخدام مثال التعليمة البرمجية التالية في المستوى تطبيق إضافة-في. وهذا تعليمات برمجية يستخدم مستند النشط.

    Dim document As Word.Document = Me.Application.ActiveDocument
    Dim firstRange As Word.Range = document.Paragraphs(1).Range
    Dim secondRange As Word.Range = document.Paragraphs(2).Range
    
    Dim firstString As String = firstRange.Text
    Dim secondString As String = secondRange.Text
    
    Word.Document document = this.Application.ActiveDocument;
    Word.Range firstRange = document.Paragraphs[1].Range;
    Word.Range secondRange = document.Paragraphs[2].Range;
    
    string firstString = firstRange.Text;
    string secondString = secondRange.Text;
    
  2. قم بتعيين الخاصية Text، مبادلا النص بين الفقرتين.

    firstRange.Text = secondString
    secondRange.Text = firstString
    
    firstRange.Text = secondString; 
    secondRange.Text = firstString; 
    
  3. حدد كل نطاق بدوره ثم قم بإيقاف مؤقت لعرض النتائج في مربع رسالة.

    firstRange.Select()
    MessageBox.Show(firstRange.Text)
    secondRange.Select()
    MessageBox.Show(secondRange.Text)
    
    firstRange.Select(); 
    MessageBox.Show(firstRange.Text); 
    secondRange.Select(); 
    MessageBox.Show(secondRange.Text); 
    
  4. قم بضبط firstRange باستخدام الأسلوب MoveEnd بحيث لا تعد علامة الفقرة جزء من firstRange.

    firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1)
    
    object charUnit = Word.WdUnits.wdCharacter;
    object move = -1;  // move left 1
    
    firstRange.MoveEnd(ref charUnit, ref move);
    
  5. قم باستبدال بقية النص في الفقرة الأولى، لتعين سلسلة "srting" جديدة في الخاصية Text من النطاق.

    firstRange.Text = "New content for paragraph 1."
    
    firstRange.Text = "New content for paragraph 1.";
    
  6. قم باستبدال النص في secondRange، بما في ذلك علامة الفقرة.

    secondRange.Text = "New content for paragraph 2."
    
    secondRange.Text = "New content for paragraph 2.";
    
  7. حدد firstRange ثم قم بإيقاف مؤقت لعرض النتائج في مربع رسالة، ثم قم بنفس الإجراء مع secondRange.

    منذ أن تمت إعادة تعريف firstRange لاستبعاد علامة الفقرة، تم المحافظة على التنسيق الأصلي في الفقرة. ومع ذلك، تم إدراج جملة عبر علامة الفقرة في secondRange، لإزالة الفقرة المنفصلة.

    firstRange.Select()
    MessageBox.Show(firstRange.Text)
    secondRange.Select()
    MessageBox.Show(secondRange.Text)
    
    firstRange.Select(); 
    MessageBox.Show(firstRange.Text); 
    secondRange.Select(); 
    MessageBox.Show(secondRange.Text); 
    

    تم حفظ المحتويات الأصلية لكلا النطاقين كـسلسلة، بحيث يمكنك استعادة المستند إلى حالته الأصلية.

  8. قم بإعادة ضبط firstRange لتتضمن علامة الفقرة باستخدام الأسلوب MoveEnd لموضع حرف واحد.

    firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
    
    move = 1;  // move right 1
    firstRange.MoveEnd(ref charUnit, ref move); 
    
  9. قم بحذف secondRange. هذا يؤدي إلى استعادة الفقرة ثلاثة إلى موضعها الأصلي.

    secondRange.Delete()
    
    secondRange.Delete(ref missing, ref missing); 
    
  10. قم باستعادة نص الفقرة الأصلي في firstRange.

    firstRange.Text = firstString
    
    firstRange.Text = firstString; 
    
  11. قم باستخدام الأسلوب InsertAfter من الكائن Range لإدراج محتوى الفقرة اثنين الأصلي بعد firstRange، ثم حدد firstRange.

    firstRange.InsertAfter(secondString)
    firstRange.Select()
    
    firstRange.InsertAfter(secondString); 
    firstRange.Select(); 
    

مثال تخصيص على مستوى المستند

للتحكم فى بنية الفقرة عند إدراج نص في تخصيصات على مستوى المستند

  • يُظهر المثال التالي الأسلوب الكامل لتخصيص على مستوى المستند. لاستخدام هذه التعليمات البرمجية، قم بتشغيلها من الفئة ThisDocument في مشروعك.

    Private Sub ReplaceParagraphText()
    
        Dim firstRange As Word.Range = Me.Paragraphs(1).Range
        Dim secondRange As Word.Range = Me.Paragraphs(2).Range
    
        Dim firstString As String = firstRange.Text
        Dim secondString As String = secondRange.Text
    
        firstRange.Text = secondString
        secondRange.Text = firstString
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1)
    
        firstRange.Text = "New content for paragraph 1."
        secondRange.Text = "New content for paragraph 2."
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
    
        secondRange.Delete()
    
        firstRange.Text = firstString
    
        firstRange.InsertAfter(secondString)
        firstRange.Select()
    End Sub
    
    private void ReplaceParagraphText() 
    { 
        Word.Range firstRange = this.Paragraphs[1].Range; 
        Word.Range secondRange = this.Paragraphs[2].Range; 
    
        string firstString = firstRange.Text; 
        string secondString = secondRange.Text; 
    
        firstRange.Text = secondString; 
        secondRange.Text = firstString; 
    
        firstRange.Select(); 
        MessageBox.Show(firstRange.Text); 
        secondRange.Select(); 
        MessageBox.Show(secondRange.Text); 
    
        object charUnit = Word.WdUnits.wdCharacter;
        object move = -1;  // move left 1
    
        firstRange.MoveEnd(ref charUnit, ref move);
    
        firstRange.Text = "New content for paragraph 1.";
        secondRange.Text = "New content for paragraph 2.";
    
        firstRange.Select(); 
        MessageBox.Show(firstRange.Text); 
        secondRange.Select(); 
        MessageBox.Show(secondRange.Text); 
    
        move = 1;  // move right 1
        firstRange.MoveEnd(ref charUnit, ref move); 
    
        secondRange.Delete(ref missing, ref missing); 
    
        firstRange.Text = firstString; 
    
        firstRange.InsertAfter(secondString); 
        firstRange.Select(); 
    }
    

مثال لوظيفة إضافية على مستوى التطبيق

للتحكم فى بنية الفقرة عند إدراج نص في وظيفة إضافية على مستوى التطبيق

  • يوضح المثال التالي طريقة كاملة المستوى تطبيق إضافة-في. لاستخدام هذه التعليمات البرمجية، قم بتشغيلها من الفئة ThisAddIn في مشروعك.

    Private Sub ReplaceParagraphText()
    
        Dim document As Word.Document = Me.Application.ActiveDocument
        Dim firstRange As Word.Range = document.Paragraphs(1).Range
        Dim secondRange As Word.Range = document.Paragraphs(2).Range
    
        Dim firstString As String = firstRange.Text
        Dim secondString As String = secondRange.Text
    
        firstRange.Text = secondString
        secondRange.Text = firstString
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1)
    
        firstRange.Text = "New content for paragraph 1."
        secondRange.Text = "New content for paragraph 2."
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
    
        secondRange.Delete()
    
        firstRange.Text = firstString
    
        firstRange.InsertAfter(secondString)
        firstRange.Select()
    End Sub
    
    private void ReplaceParagraphText()
    {
        Word.Document document = this.Application.ActiveDocument;
        Word.Range firstRange = document.Paragraphs[1].Range;
        Word.Range secondRange = document.Paragraphs[2].Range;
    
        string firstString = firstRange.Text;
        string secondString = secondRange.Text;
    
        firstRange.Text = secondString;
        secondRange.Text = firstString;
    
        firstRange.Select();
        MessageBox.Show(firstRange.Text);
        secondRange.Select();
        MessageBox.Show(secondRange.Text);
    
        object charUnit = Word.WdUnits.wdCharacter;
        object move = -1;  // move left 1
    
        firstRange.MoveEnd(ref charUnit, ref move);
    
        firstRange.Text = "New content for paragraph 1.";
        secondRange.Text = "New content for paragraph 2.";
    
        firstRange.Select();
        MessageBox.Show(firstRange.Text);
        secondRange.Select();
        MessageBox.Show(secondRange.Text);
    
        move = 1;  // move right 1
        firstRange.MoveEnd(ref charUnit, ref move);
    
        secondRange.Delete(ref missing, ref missing);
    
        firstRange.Text = firstString;
    
        firstRange.InsertAfter(secondString);
        firstRange.Select();
    }
    

راجع أيضًا:

المهام

كيفية القيام بما يلي: توسيع النطاقات في المستندات

كيفية القيام بما يلي: طي النطاقات أو التحديدات في المستندات

كيفية القيام بما يلي: إدراج نص في مستندات Word

كيفية القيام بما يلي: إعادة تعيين النطاقات في مستندات Word

كيفية القيام بما يلي: تعريف و تحديد النطاقات في المستندات

المبادئ

المعلمات الاختيارية في حلول Office