VBA projektek kezelése prezentációkban JavaScript segítségével
Bevezetés
Az Aspose.Slides osztályokat biztosít makrókkal és VBA-kóddal való munkához.
Megjegyzés
Amikor egy makrókat tartalmazó prezentációt konvertál egy másik fájlformátumba (PDF, HTML stb.), az Aspose.Slides figyelmen kívül hagyja az összes makrót (a makrók nem kerülnek át a létrehozott fájlba).
Amikor makrókat ad egy prezentációhoz vagy újra ment egy makrókat tartalmazó prezentációt, az Aspose.Slides egyszerűen csak a makrók bájtjait írja ki.
Az Aspose.Slides soha nem futtatja a prezentációban lévő makrókat.
VBA-makrók hozzáadása
Az Aspose.Slides a VbaProject osztályt biztosítja, amely lehetővé teszi VBA projektek (és projekt hivatkozások) létrehozását, valamint a meglévő modulok szerkesztését. A VbaProject osztályt használhatja a prezentációba ágyazott VBA kezelésére.
- Hozzon létre egy példányt a Presentation osztályból.
- Használja a VbaProject konstruktort egy új VBA-projekt hozzáadásához.
- Adjon hozzá egy modult a VbaProject-hez.
- Állítsa be a modul forráskódját.
- Adjon hozzá hivatkozásokat a
-hez. - Adjon hozzá hivatkozásokat a Microsoft Office-hoz.
- Társítsa a hivatkozásokat a VBA projekthez.
- Mentse a prezentációt.
Ez a JavaScript kód megmutatja, hogyan lehet egy VBA makrót teljesen az elejétől hozzáadni egy prezentációhoz:
// Létrehozza a prezentáció osztály egy példányát
let pres = new aspose.slides.Presentation();
try {
// Létrehoz egy új VBA projektet
pres.setVbaProject(new aspose.slides.VbaProject());
// Üres modult ad hozzá a VBA projekthez
let module = pres.getVbaProject().getModules().addEmptyModule("Module");
// Beállítja a modul forráskódját
module.setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
// Létrehoz egy hivatkozást a <stdole>-ra
let stdoleReference = new aspose.slides.VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
// Létrehoz egy hivatkozást az Office-re
let officeReference = new aspose.slides.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");
// Hivatkozásokat ad a VBA projekthez
pres.getVbaProject().getReferences().add(stdoleReference);
pres.getVbaProject().getReferences().add(officeReference);
// Mentse a prezentációt
pres.save("test.pptm", aspose.slides.SaveFormat.Pptm);
} finally {
if (pres != null) {
pres.dispose();
}
}
VBA-makrók eltávolítása
A VbaProject tulajdonságot a Presentation osztály alatt használva eltávolíthat egy VBA makrót.
- Hozzon létre egy példányt a Presentation osztályból, és töltse be a makrót tartalmazó prezentációt.
- Lépjen a Makró modulhoz, és távolítsa el azt.
- Mentse a módosított prezentációt.
Ez a JavaScript kód megmutatja, hogyan lehet egy VBA makrót eltávolítani:
// Betölti a makrót tartalmazó prezentációt
let pres = new aspose.slides.Presentation("VBA.pptm");
try {
// Hozzáfér a VBA modulhoz és eltávolítja
pres.getVbaProject().getModules().remove(pres.getVbaProject().getModules().get_Item(0));
// Mentse a prezentációt
pres.save("test.pptm", aspose.slides.SaveFormat.Pptm);
} finally {
if (pres != null) {
pres.dispose();
}
}
VBA-makrók kinyerése
- Hozzon létre egy példányt a Presentation osztályból, és töltse be a makrót tartalmazó prezentációt.
- Ellenőrizze, hogy a prezentáció tartalmaz‑e VBA Projektet.
- Járja be a VBA Projektben lévő összes modult a makrók megtekintéséhez.
Ez a JavaScript kód megmutatja, hogyan lehet VBA makrókat kinyerni egy makrókat tartalmazó prezentációból:
// Betölti a makrót tartalmazó prezentációt
let pres = new aspose.slides.Presentation("VBA.pptm");
try {
// Ellenőrzi, hogy a prezentáció tartalmaz-e VBA projektet
if (pres.getVbaProject() != null) {
for (let i = 0; i < pres.getVbaProject().getModules().size(); i++) {
let module = pres.getVbaProject().getModules().get_Item(i);
console.log(module.getName());
console.log(module.getSourceCode());
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Annak ellenőrzése, hogy egy VBA projekt jelszóval védett‑e
A VbaProject.isPasswordProtected metódus segítségével meghatározhatja, hogy egy projekt tulajdonságai jelszóval védettek‑e.
- Hozzon létre egy példányt a Presentation osztályból, és töltsön be egy makrót tartalmazó prezentációt.
- Ellenőrizze, hogy a prezentáció tartalmaz‑e VBA projektet.
- Ellenőrizze, hogy a VBA projekt jelszóval védett‑e a tulajdonságai megtekintéséhez.
let presentation = new aspose.slides.Presentation("VBA.pptm");
try {
if (presentation.getVbaProject() != null) { // Ellenőrizze, hogy a prezentáció tartalmaz-e VBA projektet.
if (presentation.getVbaProject().isPasswordProtected()) {
console.log("The VBA Project '%s' is protected by password to view project properties.",
presentation.getVbaProject().getName());
}
}
} finally {
presentation.dispose();
}
GYIK
Mi történik a makrókkal, ha PPTX‑ként mentem a prezentációt?
A makrók eltávolításra kerülnek, mert a PPTX nem támogatja a VBA‑t. A makrók megtartásához válassza a PPTM, PPSM vagy POTM formátumot.
Futtathatja az Aspose.Slides a makrókat a prezentációban, például adatfrissítéshez?
Nem. A könyvtár soha nem hajt végre VBA kódot; a végrehajtás csak a megfelelő biztonsági beállításokkal rendelkező PowerPointban lehetséges.
Támogatott‑e az ActiveX vezérlőkkel, VBA kóddal összekapcsolt munkavégzés?
Igen, hozzáférhet a meglévő ActiveX controls elemekhez, módosíthatja azok tulajdonságait, illetve eltávolíthatja őket. Ez hasznos, ha a makrók ActiveX‑szel kommunikálnak.