Presentación a través de VBA

Agregar Macros de VBA

Aspose.Slides proporciona la clase VbaProject para permitirte crear proyectos de VBA (y referencias de proyectos) y editar módulos existentes. Puedes usar la interfaz IVbaProject para gestionar VBA incrustado en una presentación.

  1. Crea una instancia de la clase Presentation.
  2. Utiliza el constructor de VbaProject para agregar un nuevo proyecto de VBA.
  3. Agrega un módulo al VbaProject.
  4. Establece el código fuente del módulo.
  5. Agrega referencias a .
  6. Agrega referencias a Microsoft Office.
  7. Asocia las referencias con el proyecto de VBA.
  8. Guarda la presentación.

Este código Java te muestra cómo agregar una macro de VBA desde cero a una presentación:

// Crea una instancia de la clase de presentación
Presentation pres = new Presentation();
try {
    // Crea un nuevo proyecto de VBA
    pres.setVbaProject(new VbaProject());
    
    // Agrega un módulo vacío al proyecto de VBA
    IVbaModule module = pres.getVbaProject().getModules().addEmptyModule("Módulo");
    
    // Establece el código fuente del módulo
    module.setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
    
    // Crea una referencia a <stdole>
    VbaReferenceOleTypeLib stdoleReference = new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
    
    // Crea una referencia a 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");
    
    // Agrega referencias al proyecto de VBA
    pres.getVbaProject().getReferences().add(stdoleReference);
    pres.getVbaProject().getReferences().add(officeReference);
   
    // Guarda la presentación
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

Eliminar Macros de VBA

Usando la propiedad VbaProject bajo la clase Presentation, puedes eliminar una macro de VBA.

  1. Crea una instancia de la clase Presentation y carga la presentación que contiene la macro.
  2. Accede al módulo Macro y elimínalo.
  3. Guarda la presentación modificada.

Este código Java te muestra cómo eliminar una macro de VBA:

// Carga la presentación que contiene la macro
Presentation pres = new Presentation("VBA.pptm");
try {
    // Accede al módulo de Vba y lo elimina 
    pres.getVbaProject().getModules().remove(pres.getVbaProject().getModules().get_Item(0));
    
    // Guarda la presentación
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

Extraer Macros de VBA

  1. Crea una instancia de la clase Presentation y carga la presentación que contiene la macro.
  2. Verifica si la presentación contiene un proyecto de VBA.
  3. Recorre todos los módulos contenidos en el proyecto de VBA para ver las macros.

Este código Java te muestra cómo extraer macros de VBA de una presentación que contiene macros:

// Carga la presentación que contiene la macro
Presentation pres = new Presentation("VBA.pptm");
try {
    if (pres.getVbaProject() != null) // Verifica si la presentación contiene un proyecto de VBA
    {
        for (IVbaModule module : pres.getVbaProject().getModules())
        {
            System.out.println(module.getName());
            System.out.println(module.getSourceCode());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}