إدارة مشاريع VBA في العروض التقديمية على Android

إضافة ماكروهات VBA

توفر Aspose.Slides الفئة VbaProject لتسمح لك بإنشاء مشاريع VBA (ومراجع المشروع) وتعديل الوحدات الحالية. يمكنك استخدام الواجهة IVbaProject لإدارة VBA المدمج في عرض تقديمي.

  1. إنشاء مثال من الفئة Presentation class.
  2. استخدم مُنشئ VbaProject لإضافة مشروع VBA جديد.
  3. إضافة وحدة إلى VbaProject.
  4. تعيين شفرة المصدر للوحدة.
  5. إضافة مراجع إلى .
  6. إضافة مراجع إلى Microsoft Office.
  7. ربط المراجع بمشروع VBA.
  8. حفظ العرض التقديمي.

يعرض هذا الكود Java كيفية إضافة ماكرو VBA من الصفر إلى عرض تقديمي:

// ينشئ كائنًا من فئة العرض التقديمي
Presentation pres = new Presentation();
try {
    // ينشئ مشروع VBA جديد
    pres.setVbaProject(new VbaProject());
    
    // يضيف وحدة فارغة إلى مشروع VBA
    IVbaModule module = pres.getVbaProject().getModules().addEmptyModule("Module");
    
    // يضبط شفرة المصدر للوحدة
    module.setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
    
    // ينشئ إشارة إلى <stdole>
    VbaReferenceOleTypeLib stdoleReference = new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
    
    // ينشئ إشارة إلى Office
    VbaReferenceOleTypeLib officeReference = new VbaReferenceOleTypeLib("Office",
            "*\\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE14\\MSO.DLL#Microsoft Office 14.0 Object Library");
    
    // يضيف مراجع إلى مشروع VBA
    pres.getVbaProject().getReferences().add(stdoleReference);
    pres.getVbaProject().getReferences().add(officeReference);
   
    // يحفظ العرض التقديمي
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

إزالة ماكروهات VBA

باستخدام خاصية VbaProject ضمن الفئة Presentation class، يمكنك إزالة ماكرو VBA.

  1. إنشاء مثال من الفئة Presentation وتحميل العرض التقديمي الذي يحتوي على الماكرو.
  2. الوصول إلى وحدة الماكرو وإزالتها.
  3. حفظ العرض التقديمي المعدل.

يعرض هذا الكود Java كيفية إزالة ماكرو VBA:

// يحمل العرض التقديمي الذي يحتوي على الماكرو
Presentation pres = new Presentation("VBA.pptm");
try {
    // يصل إلى وحدة Vba ويزيلها 
    pres.getVbaProject().getModules().remove(pres.getVbaProject().getModules().get_Item(0));
    
    // يحفظ العرض التقديمي
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

استخراج ماكروهات VBA

  1. إنشاء مثال من الفئة Presentation وتحميل العرض التقديمي الذي يحتوي على الماكرو.
  2. التحقق مما إذا كان العرض التقديمي يحتوي على مشروع VBA.
  3. التجول عبر جميع الوحدات الموجودة في مشروع VBA لعرض الماكروهات.

يعرض هذا الكود Java كيفية استخراج ماكروهات VBA من عرض تقديمي يحتوي على ماكروهات:

// تحميل العرض التقديمي الذي يحتوي على الماكرو
Presentation pres = new Presentation("VBA.pptm");
try {
    if (pres.getVbaProject() != null) // يتحقق مما إذا كان العرض التقديمي يحتوي على مشروع VBA
    {
        for (IVbaModule module : pres.getVbaProject().getModules())
        {
            System.out.println(module.getName());
            System.out.println(module.getSourceCode());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

التحقق مما إذا كان مشروع VBA محميًا بكلمة مرور

باستخدام طريقة IVbaProject.isPasswordProtected يمكنك تحديد ما إذا كانت خصائص المشروع محمية بكلمة مرور.

  1. إنشاء مثال من الفئة Presentation وتحميل عرض تقديمي يحتوي على ماكرو.
  2. التحقق مما إذا كان العرض التقديمي يحتوي على VBA project.
  3. التحقق مما إذا كان مشروع VBA محميًا بكلمة مرور لعرض خصائصه.
Presentation presentation = new Presentation("VBA.pptm");
try {
    if (presentation.getVbaProject() != null) { // تحقق مما إذا كان العرض التقديمي يحتوي على مشروع VBA.
        if (presentation.getVbaProject().isPasswordProtected()) {
            System.out.printf("The VBA Project '%s' is protected by password to view project properties.", 
                    presentation.getVbaProject().getName());
        }
    }
} finally {
    presentation.dispose();
}

الأسئلة الشائعة

ماذا يحدث للماكروهات إذا حفظت العرض التقديمي كملف PPTX؟

سيتم إزالة الماكروهات لأن PPTX لا يدعم VBA. للاحتفاظ بالماكروهات، اختر PPTM أو PPSM أو POTM.

هل يمكن لـ Aspose.Slides تشغيل الماكروهات داخل عرض تقديمي، مثلاً لتحديث البيانات؟

لا. المكتبة لا تنفذ شفرة VBA أبدًا؛ التنفيذ ممكن فقط داخل PowerPoint مع إعدادات الأمان المناسبة.

هل يتم دعم العمل مع عناصر تحكم ActiveX المرتبطة بشفرة VBA؟

نعم، يمكنك الوصول إلى عناصر تحكم ActiveX الموجودة ActiveX controls، تعديل خصائصها، وإزالتها. هذا مفيد عندما تتفاعل الماكروهات مع ActiveX.