العرض عبر VBA
تحتوي مساحة الاسم Aspose.Slides.Vba على فئات وواجهات للعمل مع الماكرو وكود VBA.
ملحوظة
عند تحويل عرض تقديمي يحتوي على ماكرو إلى تنسيق ملف مختلف (PDF، HTML، إلخ)، تتجاهل Aspose.Slides جميع الماكرو (لا يتم نقل الماكرو إلى الملف الناتج).
عند إضافة الماكرو إلى عرض تقديمي أو إعادة حفظ عرض تقديمي يحتوي على ماكرو، تقوم Aspose.Slides ببساطة بكتابة بايتات الماكرو.
Aspose.Slides لا تقوم أبدًا بتشغيل الماكرو في عرض تقديمي.
إضافة ماكرو VBA
توفر Aspose.Slides فئة VbaProject للسماح لك بإنشاء مشاريع VBA (ومراجع المشروع) وتحرير الوحدات الموجودة. يمكنك استخدام واجهة IVbaProject لإدارة VBA المضمنة في عرض تقديمي.
- إنشاء مثيل من فئة Presentation.
- استخدم مُنشئ VbaProject لإضافة مشروع VBA جديد.
- أضف وحدة إلى VbaProject.
- تعيين كود المصدر للوحدة.
- إضافة مراجع إلى
. - إضافة مراجع إلى Microsoft Office.
- ربط المراجع بمشروع VBA.
- حفظ العرض التقديمي.
يوضح هذا الكود في 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.
- إنشاء مثيل من فئة Presentation وتحميل العرض التقديمي الذي يحتوي على الماكرو.
- الوصول إلى وحدة الماكرو وإزالتها.
- حفظ العرض التقديمي المعدل.
يوضح هذا الكود في 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
- إنشاء مثيل من فئة Presentation وتحميل العرض التقديمي الذي يحتوي على الماكرو.
- التحقق مما إذا كان العرض يحتوي على مشروع VBA.
- حلقة عبر جميع الوحدات الموجودة في مشروع 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، يمكنك التحقق مما إذا كانت خصائص المشروع محمية بكلمة مرور.
- إنشاء مثيل من فئة Presentation وتحميل العرض التقديمي الذي يحتوي على الماكرو.
- التحقق مما إذا كان العرض يحتوي على مشروع VBA.
- التحقق مما إذا كان مشروع 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 +
"' محمي بكلمة مرور لعرض خصائص المشروع.");
}
}