# Beheer VBA-projecten in presentaties met Java

> Ontdek hoe u PowerPoint- en OpenDocument-presentaties via VBA kunt genereren en manipuleren met Aspose.Slides voor Java om uw workflow te stroomlijnen.

Source: https://docs.aspose.com/slides/nl/java/presentation-via-vba/
Updated: 2026-06-13

## **Inleiding**

Aspose.Slides biedt klassen en interfaces voor het werken met macro's en VBA-code.

{{% alert title="Note" color="warning" %}} 

Wanneer u een presentatie met macro's converteert naar een ander bestandsformaat (PDF, HTML, enz.), negeert Aspose.Slides alle macro's (macro's worden niet overgenomen in het resulterende bestand).

Wanneer u macro's toevoegt aan een presentatie of een presentatie met macro's opnieuw opslaat, schrijft Aspose.Slides eenvoudigweg de bytes voor de macro's.

Aspose.Slides **nooit** macro's in een presentatie uitvoert.

{{% /alert %}}

## **VBA-macro's toevoegen**

Aspose.Slides biedt de klasse [VbaProject](https://reference.aspose.com/slides/nl/java/com.aspose.slides/vbaproject/) om VBA‑projecten (en project‑referenties) te maken en bestaande modules te bewerken. U kunt de interface [IVbaProject](https://reference.aspose.com/slides/nl/java/com.aspose.slides/ivbaproject/) gebruiken om VBA die in een presentatie is ingebed te beheren.

1. Maak een instantie van de klasse [Presentation](https://reference.aspose.com/slides/nl/java/com.aspose.slides/presentation).
1. Gebruik de constructor van [VbaProject](https://reference.aspose.com/slides/nl/java/com.aspose.slides/vbaproject/#VbaProject--) om een nieuw VBA‑project toe te voegen.
1. Voeg een module toe aan het VbaProject.
1. Stel de broncode van de module in.
1. Voeg referenties toe aan <stdole>.
1. Voeg referenties toe aan **Microsoft Office**.
1. Koppel de referenties aan het VBA‑project.
1. Sla de presentatie op.

Deze Java‑code laat zien hoe u vanaf nul een VBA‑macro aan een presentatie toevoegt:

```java
// Maakt een instantie van de presentatieklasse
Presentation pres = new Presentation();
try {
    // Maakt een nieuw VBA-project
    pres.setVbaProject(new VbaProject());
    
    // Voegt een lege module toe aan het VBA-project
    IVbaModule module = pres.getVbaProject().getModules().addEmptyModule("Module");
    
    // Stelt de broncode van de module in
    module.setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
    
    // Creëert een referentie naar <stdole>
    VbaReferenceOleTypeLib stdoleReference = new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
    
    // Creëert een referentie naar 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");
    
    // Voegt referenties toe aan het VBA-project
    pres.getVbaProject().getReferences().add(stdoleReference);
    pres.getVbaProject().getReferences().add(officeReference);
   
    // Slaat de presentatie op
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}
```

{{% alert color="primary" %}} 

U wilt misschien **Aspose** [Macro Remover](https://products.aspose.app/slides/nl/remove-macros) bekijken, een gratis webapplicatie om macro's uit PowerPoint-, Excel- en Word‑documenten te verwijderen. 

{{% /alert %}} 

## **VBA-macro's verwijderen**

Met behulp van de eigenschap [VbaProject](https://reference.aspose.com/slides/nl/java/com.aspose.slides/presentation/#getVbaProject--) onder de klasse [Presentation](https://reference.aspose.com/slides/nl/java/com.aspose.slides/presentation) kunt u een VBA‑macro verwijderen.

1. Maak een instantie van de klasse [Presentation](https://reference.aspose.com/slides/nl/java/com.aspose.slides/presentation) en laad de presentatie die de macro bevat.
1. Open de Macro‑module en verwijder deze.
1. Sla de aangepaste presentatie op.

Deze Java‑code laat zien hoe u een VBA‑macro verwijdert:

```java
// Laadt de presentatie met de macro
Presentation pres = new Presentation("VBA.pptm");
try {
    // Toegang tot de Vba-module en verwijdert deze 
    pres.getVbaProject().getModules().remove(pres.getVbaProject().getModules().get_Item(0));
    
    // Slaat de presentatie op
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}
```

## **VBA-macro's extraheren**

1. Maak een instantie van de klasse [Presentation](https://reference.aspose.com/slides/nl/java/com.aspose.slides/presentation) en laad de presentatie die de macro bevat.
2. Controleer of de presentatie een VBA‑project bevat.
3. Loop door alle modules in het VBA‑project om de macro's te bekijken.

Deze Java‑code laat zien hoe u VBA‑macro's uit een presentatie met macro's extraheert:

```java
// Laadt de presentatie met de macro
Presentation pres = new Presentation("VBA.pptm");
try {
    if (pres.getVbaProject() != null) // Controleert of de presentatie een VBA-project bevat
    {
        for (IVbaModule module : pres.getVbaProject().getModules())
        {
            System.out.println(module.getName());
            System.out.println(module.getSourceCode());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}
```

## **Controleren of een VBA‑project met wachtwoord is beveiligd**

Met de methode [IVbaProject.isPasswordProtected](https://reference.aspose.com/slides/nl/java/com.aspose.slides/ivbaproject/#isPasswordProtected--) kunt u bepalen of de eigenschappen van een project met een wachtwoord zijn beveiligd.

1. Maak een instantie van de klasse [Presentation](https://reference.aspose.com/slides/nl/java/com.aspose.slides/presentation/) en laad een presentatie die een macro bevat.
2. Controleer of de presentatie een [VBA‑project](https://reference.aspose.com/slides/nl/java/com.aspose.slides/vbaproject/) bevat.
3. Controleer of het VBA‑project met een wachtwoord is beveiligd om de eigenschappen te bekijken.

```java
Presentation presentation = new Presentation("VBA.pptm");
try {
    if (presentation.getVbaProject() != null) { // Controleer of de presentatie een VBA-project bevat.
        if (presentation.getVbaProject().isPasswordProtected()) {
            System.out.printf("The VBA Project '%s' is protected by password to view project properties.", 
                    presentation.getVbaProject().getName());
        }
    }
} finally {
    presentation.dispose();
}
```

## **FAQ**

**Wat gebeurt er met macro's als ik de presentatie opsla als PPTX?**

Macro's worden verwijderd omdat PPTX geen VBA ondersteunt. Om macro's te behouden, kiest u PPTM, PPSM of POTM.

**Kan Aspose.Slides macro's binnen een presentatie uitvoeren, bijvoorbeeld om gegevens te vernieuwen?**

Nee. De bibliotheek voert nooit VBA‑code uit; uitvoering is alleen mogelijk in PowerPoint met de juiste beveiligingsinstellingen.

**Wordt werken met ActiveX‑besturingselementen gekoppeld aan VBA‑code ondersteund?**

Ja, u kunt bestaande [ActiveX‑besturingselementen](/slides/nl/java/activex/) benaderen, hun eigenschappen wijzigen en ze verwijderen. Dit is nuttig wanneer macro's met ActiveX communiceren.
