كيفية القيام بما يلي: عرض التعليمة البرمجية إلى VBA في مشروع Visual C#‎

ينطبق على

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

نوع المشروع

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

إصدار Microsoft Office

  • Excel 2007 و Excel 2010

  • Word 2007 و Word 2010

يمكنك عرض التعليمة البرمجية في مشروع Visual C# إلى تعليمات برمجية في " Visual Basic للتطبيقات (VBA)"، إذا كنت تريد النوعين من التعليمات البرمجية أن يتفاعلا مع بعضهما البعض.

تختلف عملية Visual C# عن عملية Visual Basic. للمزيد من المعلومات، راجع استدعاء تعليمات برمجية في تخصيصات على مستوى المستند من VBA وكيفية القيام بما يلي: عرض التعليمة البرمجية إلى VBA في مشروع Visual Basic.

عرض التعليمات البرمجية في مشروع Visual C#‎

لتمكين تعليمات VBA البرمجية من استدعاء التعليمات البرمجية في مشروع Visual C# ، قم بتعديل التعليمات البرمجية بحيث تكون مرئية لـ COM، ثم قم بتعيين الخاصية ReferenceAssemblyFromVbaProject إلى True في المصمم.

للحصول على الإرشادات التفصيلية التي توضح كيفية استدعاء أسلوب في مشروع Visual C# من VBA, راجع الإرشادات التفصيلية: استدعاء تعليمات برمجية من VBA في مشروع #C.

لعرض التعليمات البرمجية فى مشروع Visual C# إلى VBA

  1. افتح أو أنشئ مشروعاً علي مستوي المستند يعتمد على مستند Word أو مصنف Excel أو قالب Excel و يدعم وحدات الماكرو و يحتوي بالفعل على تعليمة VBA البرمجية.

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

    ملاحظة

    لا يمكن استخدام هذه الميزة في مشاريع قالب Word.

  2. تأكد من السماح للتعليمة البرمجية لـ VBA في المستند بالتشغيل دون مطالبة المستخدم من تمكين وحدات الماكرو. يمكنك الثقة في تشغيل تعليمات VBA البرمجية عن طريق إضافة موقع مشروع Office إلي قائمة المواقع الموثوق بها في إعدادات مركز التوثيق لـ Word أو Excel.

  3. أضف العضو الذي تريد عرضه لـ VBA إلى فئة عامة في مشروعك و قم بالتصريح بالعضو جديد كـ public.

  4. قم بتطبيق السمات التالية ComVisibleAttribute و ClassInterfaceAttribute إلى الفئة التي تقوم بعرضها علي VBA. تجعل هذه السمات الفئة مرئية لـ COM ولكن بدون إنشاء واجهة فئة.

    [System.Runtime.InteropServices.ComVisible(true)]
    [System.Runtime.InteropServices.ClassInterface(
        System.Runtime.InteropServices.ClassInterfaceType.None)]
    
  5. تجاوز الأسلوب GetAutomationObjectمن فئة العنصر المضيف في المشروع الخاص بك لإرجاع مثيل من الفئة التي تقوم بعرضها لـ VBA.

    • إذا كنت تعرض فئة عنصر مضيف إلي VBA ، تجاوز الأسلوب GetAutomationObject الذي ينتمي إلي هذه الفئة ثم قم بإرجاع مثيل الفئة الحالية.

      protected override object GetAutomationObject()
      {
          return this;
      }
      
    • إذا كنت تعرض فئة ليست عنصراً مضيفاً إلي VBA ، تجاوز الأسلوب GetAutomationObject لأي عنصر مضيف في المشروع الخاص بك ثم قم بإرجاع مثيل الفئة التي تقوم بعرضها علي VBA. علي سبيل المثال ، يفترض مثال التعليمات البرمجية التالي أنك تعرض فئة باسم DocumentUtilities إلى VBA.

      protected override object GetAutomationObject()
      {
          return new DocumentUtilities();
      }
      

    لمزيد من المعلومات حول عناصر المضيف, انظرنظرة عامة حول العناصر المضيفة و عناصر تحكم المضيف.

  6. قم باستخراج واجهة من الفئة التي تقوم بعرضها لـ VBA. في مربع الحوار استخراج واجهة ، حدد الأعضاء العامة التي تريد تضمينها في التصريح بالواجهة. لمزيد من المعلومات، راجع إعادة بناء التعليمات البرمجية لاستخراج واجهة (C#).

  7. قم بإضافة الكلمة الأساسية public إلى التصريح بالواجهة.

  8. اجعل الواجهة مرئية لـ COM بواسطة إضافة السمة ComVisibleAttribute التالية إلى الواجهة.

    [System.Runtime.InteropServices.ComVisible(true)]
    
  9. افتح المستند (لـ Word) أو ورقة العمل (لـ Excel) في المصمم في Visual Studio.

  10. في نافذة الخصائص Properties حدد خاصية ReferenceAssemblyFromVbaProject ، ثم قم بتغيير القيمة إلى True.

    ملاحظة

    إذا كان المستند أو المصنف لا يحتوي بالفعل على تعليمة VBA البرمجية أو إذا كانت تعليمة VBA البرمجية في المستند غير موثوق بها للتشغيل، ستظهر لك رسالة خطأ عند تعيين خاصية ReferenceAssemblyFromVbaProject لـ True . وهذا لأن Visual Studio لا يمكنه تعديل مشروع VBA في المستند في هذا الموقف.

  11. انقر فوق موافق في الرسالة المعروضة هذه الرسالة تذكرك أنك إذا قمت بإضافة تعليمة VBA برمجية إلى المصنف أو المستند أثناء تشغيلك للمشروع من Visual Studio ، فإن تعليمة VBA البرمجية سيتم فقدانها في المرة التالية التي تقوم فيها ببناء المشروع. وهذا لأن المستند في مجلد إخراج البناء تتم الكتابة فوقه كل مرة يتم فيها بناء المشروع.

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

  12. إنشاء المشروع.

راجع أيضًا:

المهام

كيفية القيام بما يلي: إنشاء مشاريع Office في Visual Studio

الإرشادات التفصيلية: استدعاء تعليمات برمجية من VBA في مشروع #C

كيفية القيام بما يلي: عرض التعليمة البرمجية إلى VBA في مشروع Visual Basic

المبادئ

استدعاء تعليمات برمجية في تخصيصات على مستوى المستند من VBA

موارد أخرى

تصميم و إنشاء حلول Office

ضم VBA و تخصيصات من مستوى المستند