العرض عبر VBA
Contents
[
Hide
]
ملاحظة
عند تحويل عرض يتضمن ماكروز إلى تنسيق ملف مختلف (PDF، HTML، إلخ)، تتجاهل Aspose.Slides جميع الماكروز (الماكروز لا تُحمل إلى الملف الناتج).
عند إضافة ماكروز إلى عرض أو إعادة حفظ عرض يحتوي على ماكروز، تكتب Aspose.Slides ببساطة بايتات الماكروز.
Aspose.Slides لا تقوم أبداً بتشغيل الماكروز في العرض.
إضافة ماكروز VBA
تقدم Aspose.Slides الفئة VbaProject التي تتيح لك إنشاء مشاريع VBA (ومراجع المشاريع) وتحرير الوحدات الموجودة. يمكنك استخدام الواجهة IVbaProject لإدارة VBA المضمن في العرض.
- إنشاء مثيل من الفئة Presentation .
- استخدم مُنشئ VbaProject لإضافة مشروع VBA جديد.
- أضف وحدة إلى VbaProject.
- قم بتعيين شفرة مصدر الوحدة.
- أضف مراجع إلى
. - أضف مراجع إلى Microsoft Office.
- اربط المراجع بمشروع VBA.
- احفظ العرض.
يوضح لك هذا الكود PHP كيفية إضافة ماكرو VBA من الصفر إلى عرض:
# ينشئ مثيلاً من الفئة presentation
$pres = new Presentation();
try {
# ينشئ مشروع VBA جديد
$pres->setVbaProject(new VbaProject());
# يضيف وحدة فارغة إلى مشروع VBA
$module = $pres->getVbaProject()->getModules()->addEmptyModule("Module");
# يعين شفرة مصدر الوحدة
$module->setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
# ينشئ مرجعاً إلى <stdole>
$stdoleReference = new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
# ينشئ مرجعاً إلى Office
$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 (!java_is_null($pres)) {
$pres->dispose();
}
}
قد ترغب في الاطلاع على Aspose إزالة الماكروز، وهو تطبيق ويب مجاني يستخدم لإزالة الماكروز من عروض باوربوينت، ومستندات إكسل، ووورد.
إزالة ماكروز VBA
باستخدام خاصية VbaProject تحت الفئة Presentation، يمكنك إزالة ماكرو VBA.
- قم بإنشاء مثيل من الفئة Presentation وفتح العرض الذي يحتوي على الماكرو.
- الوصول إلى وحدة الماكرو وإزالتها.
- احفظ العرض المعدل.
يوضح لك هذا الكود PHP كيفية إزالة ماكرو VBA:
# يحمل العرض الذي يحتوي على الماكرو
$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 (!java_is_null($pres)) {
$pres->dispose();
}
}
استخراج ماكروز VBA
- إنشاء مثيل من الفئة Presentation وتحميل العرض الذي يحتوي على الماكرو.
- تحقق مما إذا كان العرض يحتوي على مشروع VBA.
- قم بالتكرار عبر جميع الوحدات الموجودة في مشروع VBA لعرض الماكروز.
يوضح لك هذا الكود PHP كيفية استخراج ماكروز VBA من عرض يحتوي على ماكروز:
# يحمل العرض الذي يحتوي على الماكرو
$pres = new Presentation("VBA.pptm");
try {
# يتحقق مما إذا كان العرض يحتوي على مشروع VBA
if (!java_is_null($pres->getVbaProject())) {
foreach($pres->getVbaProject()->getModules() as $module) {
echo($module->getName());
echo($module->getSourceCode());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}