السلام عليكم...
الطريقة التالية باستخدام VB 2010 مع Word 2010، و لا تعتمد على Spire.Doc Library المستخدمة في الصفحة التي أشرت إليها في مشاركتك السابقة.
أولاً: إضافة مكتبة Word إلى مراجع المشروع (References):
1. فتح نافذة الـ References:
= أ. في نافذة Solution Explorer انقر بالزر الأيمن على اسم المشروع (في أعلى القائمة) و اختر من القائمة الأمر Add Reference.
= أو:
= ب. من القائمة Project اختر الأمر Properties لفتح صفحة خصائص المشروع. عند أسفل يمين قائمة الـ References انقر السهم الصغير على الزر Add و اختر Reference.
بأي من الطريقتين ستظهر نافذة Add Reference.
2. في نافذة Add Reference اختر الصفحة COM.
3. ابحث عن البند Microsoft Word x.x Object Library (حيث x.x رقم نسخة مكتبة Word. مثلاً مع Word 2010 نجدها: Microsoft Word 14.0 Object Library)
4. قم بتحديد ذلك البند ثم انقر الزر OK.
ثانياً: التفاصيل و الكود:
مكتبة Word تحتوي على المئات من الكائنات. سنحتاج منها مبدئياً الكائن Application و الكائن Document و الكائن Range، بالإضافة إلى الكائن Bookmarks لإضافة الإشارات المرجعية.
الخطوات ببساطة - كما في الكود التالي - تتلخص في إنشاء نسخة من برنامج Word ثم فتح المستند المطلوب ثم تحديد مكان الإشارة المرجعية ثم إضافة الإشارة المرجعية في ذلك المكان.
الأمثلة:
1. المثال التالي يضع إشارة مرجعية على الفقرة الثانية في المستند:
كود :
Dim WordApp As New Word.Application ' تسغيل برنامج وورد
Dim WordDoc As Word.Document = WordApp.Documents.Open("D:\My Docs\MyFile.docx") ' فتح المستند
WordDoc.Paragraphs(2).Range.Bookmarks.Add("BkMrk_Para2") ' وضع إشارة مرجعية على الفقرة الثانية
* طبعاً بدل المسار المستعمل في المثال مع الوظيفة Open تضع مسار و اسم الملف لديك.
* أحد كائنات Word هو الكائن Paragraphs الذي يضم كل فقرات المستند. و نصل إلى فقرة معينة بتحديد رقمها مع الكائن Paragraphs، حيث أول فقرة رقمها 1 و الثانية رقمها 2... و هكذا.
* لإضافة Bookmark نحتاج إلى كائن Range و هو كائن يمكن إنشاؤه من معظم الكائنات الأخرى، حيث يمثل محتوى الكائن المنشأ منه.
* النص الممرر إلى الوظيفة Add (يعني BkMrk_Para2 في المثال أعلاه) هو اسم الإشارة المرجعية، و طبعاً يمكنك وضع الاسم الذي تريده.
2. المثال التالي يضع إشارة مرجعية على أول جدول في المستند:
كود :
Dim WordApp As New Word.Application ' تسغيل برنامج وورد
Dim WordDoc As Word.Document = WordApp.Documents.Open("D:\My Docs\MyFile.docx") ' فتح المستند
Dim TblRng As Word.Range = WordDoc.Tables(1).Range ' إنشاء نطاق من أول جدول في المستند
WordDoc.Bookmarks.Add("BkMrk_Table1", TblRng)
* لاحظ أننا هنا قمنا بوضع الإشارة المرجعية بطريقة مختلفة، حيث أنشأنا Range كمتغير من الجدول في البداية ثم قمنا بتمرير هذا الـ Range إلى الوظيفة Add كبارامتر ثانٍ. كما أننا استخدمنا الكائن Bookmarks مباشرة مع الكائن Document.
3. أخيراً هذا مثال لوضع إشارة مرجعية على خلية معينة في الجدول:
كود :
Dim WordApp As New Word.Application ' تسغيل برنامج وورد
Dim WordDoc As Word.Document = WordApp.Documents.Open("D:\My Docs\MyFile.docx") ' فتح المستند
WordDoc.Tables(1).Cell(1, 1).Range.Bookmarks.Add("BkMrk_Cell1") ' وضع إشارة مرجعية للخلية الموجودة في الصف الأول و العمود الأول
*** ملاحظات أخيرة:
1. طبعاً إضافة إشارات مرجعية تعني تغييراً في المستند، فإذا أردت حفظ التغييرات أضف السطر التالي:
2. إذا أردت إظهار شاشة Word على الشاشة فاستعمل هذا السطر:
كود :
WordApp.Visible = True
3. إذا أردت إغلاق Word فاستعمل هذا السطر:
4. أرجو الاستفادة و السلام.