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.

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.

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Használja a VbaProject konstruktort egy új VBA-projekt hozzáadásához.
  3. Adjon hozzá egy modult a VbaProject-hez.
  4. Állítsa be a modul forráskódját.
  5. Adjon hozzá hivatkozásokat a -hez.
  6. Adjon hozzá hivatkozásokat a Microsoft Office-hoz.
  7. Társítsa a hivatkozásokat a VBA projekthez.
  8. 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.

  1. Hozzon létre egy példányt a Presentation osztályból, és töltse be a makrót tartalmazó prezentációt.
  2. Lépjen a Makró modulhoz, és távolítsa el azt.
  3. 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

  1. Hozzon létre egy példányt a Presentation osztályból, és töltse be a makrót tartalmazó prezentációt.
  2. Ellenőrizze, hogy a prezentáció tartalmaz‑e VBA Projektet.
  3. 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.

  1. Hozzon létre egy példányt a Presentation osztályból, és töltsön be egy makrót tartalmazó prezentációt.
  2. Ellenőrizze, hogy a prezentáció tartalmaz‑e VBA projektet.
  3. 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.