العرض عبر VBA

تحتوي مساحة الاسم Aspose.Slides.Vba على فئات وواجهات للعمل مع الماكرو وكود VBA.

إضافة ماكرو VBA

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

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

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

    // إنشاء مثيل من فئة العرض التقديمي
using (Presentation presentation = new Presentation())
{
    // إنشاء مشروع VBA جديد
    presentation.VbaProject = new VbaProject();

    // إضافة وحدة فارغة إلى مشروع VBA
    IVbaModule module = presentation.VbaProject.Modules.AddEmptyModule("Module");
  
    // تعيين كود المصدر للوحدة
    module.SourceCode = @"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
    presentation.VbaProject.References.Add(stdoleReference);
    presentation.VbaProject.References.Add(officeReference);

            
    // حفظ العرض التقديمي
    presentation.Save(dataDir + "AddVBAMacros_out.pptm", SaveFormat.Pptm);
}

إزالة ماكرو VBA

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

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

يوضح هذا الكود في C# كيفية إزالة ماكرو VBA:

    // تحميل العرض التقديمي الذي يحتوي على الماكرو
using (Presentation presentation = new Presentation(dataDir + "VBA.pptm"))
{
    // الوصول إلى وحدة Vba وإزالتها 
    presentation.VbaProject.Modules.Remove(presentation.VbaProject.Modules[0]);

    // حفظ العرض التقديمي
    presentation.Save(dataDir + "RemovedVBAMacros_out.pptm", SaveFormat.Pptm);
}

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

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

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

    // تحميل العرض التقديمي الذي يحتوي على الماكرو
using (Presentation pres = new Presentation("VBA.pptm"))
{
	if (pres.VbaProject != null) // التحقق مما إذا كان العرض يحتوي على مشروع VBA
	{
		foreach (IVbaModule module in pres.VbaProject.Modules)
		{
			Console.WriteLine(module.Name);
			Console.WriteLine(module.SourceCode);
		}
	}
}

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

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

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

يوضح هذا الكود في C# العملية:

using (Presentation pres = new Presentation("VBA.pptm"))
{
    if (pres.VbaProject == null) // التحقق مما إذا كان العرض يحتوي على مشروع VBA
        return;

    if (pres.VbaProject.IsPasswordProtected)
    {
        Console.WriteLine("مشروع VBA '" + pres.VbaProject.Name +
                            "' محمي بكلمة مرور لعرض خصائص المشروع.");
    }
}