com.aspose.words

Class VbaModuleCollection

  • java.lang.Object
    • com.aspose.words.VbaModuleCollection
  • All Implemented Interfaces:
    java.lang.Iterable
    public class VbaModuleCollection 
    extends java.lang.Object

Represents a collection of VbaModule objects.

Example:

Shows how to get access to VBA project information in the document.
Document doc = new Document(getMyDir() + "VBA project.docm");

// A VBA project inside the document is defined as a collection of VBA modules
VbaProject vbaProject = doc.getVbaProject();
System.out.println(vbaProject.isSigned()
        ? MessageFormat.format("Project name: {0} signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount())
        : MessageFormat.format("Project name: {0} not signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount()));

VbaModuleCollection vbaModules = doc.getVbaProject().getModules(); 

Assert.assertEquals(vbaModules.getCount(), 3);

for (VbaModule module : vbaModules) {
    System.out.println(MessageFormat.format("Module name: {0};\nModule code:\n{1}\n", module.getName(), module.getSourceCode()));
}

// Set new source code for VBA module
// You can retrieve object by integer or by name
vbaModules.get(0).setSourceCode("Your VBA code...");
vbaModules.get("Module1").setSourceCode("Your VBA code...");

// Remove one of VbaModule from VbaModuleCollection
vbaModules.remove(vbaModules.get(2));

Property Getters/Setters Summary
intgetCount()
Returns the number of VBA modules in the collection.
VbaModuleget(int index)
Retrieves a VbaModule object by index.
VbaModuleget(java.lang.String name)
Retrieves a VbaModule object by name, or Null if not found.
 
Method Summary
voidadd(VbaModule vbaModule)
Adds a module to the collection.
voidremove(VbaModule module)
Removes the specified module from the collection.
 

    • Property Getters/Setters Detail

      • getCount

        public int getCount()
        
        Returns the number of VBA modules in the collection.

        Example:

        Shows how to get access to VBA project information in the document.
        Document doc = new Document(getMyDir() + "VBA project.docm");
        
        // A VBA project inside the document is defined as a collection of VBA modules
        VbaProject vbaProject = doc.getVbaProject();
        System.out.println(vbaProject.isSigned()
                ? MessageFormat.format("Project name: {0} signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount())
                : MessageFormat.format("Project name: {0} not signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount()));
        
        VbaModuleCollection vbaModules = doc.getVbaProject().getModules(); 
        
        Assert.assertEquals(vbaModules.getCount(), 3);
        
        for (VbaModule module : vbaModules) {
            System.out.println(MessageFormat.format("Module name: {0};\nModule code:\n{1}\n", module.getName(), module.getSourceCode()));
        }
        
        // Set new source code for VBA module
        // You can retrieve object by integer or by name
        vbaModules.get(0).setSourceCode("Your VBA code...");
        vbaModules.get("Module1").setSourceCode("Your VBA code...");
        
        // Remove one of VbaModule from VbaModuleCollection
        vbaModules.remove(vbaModules.get(2));
      • get

        public VbaModule get(int index)
        
        Retrieves a VbaModule object by index.
        Parameters:
        index - Zero-based index of the module to retrieve.

        Example:

        Shows how to get access to VBA project information in the document.
        Document doc = new Document(getMyDir() + "VBA project.docm");
        
        // A VBA project inside the document is defined as a collection of VBA modules
        VbaProject vbaProject = doc.getVbaProject();
        System.out.println(vbaProject.isSigned()
                ? MessageFormat.format("Project name: {0} signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount())
                : MessageFormat.format("Project name: {0} not signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount()));
        
        VbaModuleCollection vbaModules = doc.getVbaProject().getModules(); 
        
        Assert.assertEquals(vbaModules.getCount(), 3);
        
        for (VbaModule module : vbaModules) {
            System.out.println(MessageFormat.format("Module name: {0};\nModule code:\n{1}\n", module.getName(), module.getSourceCode()));
        }
        
        // Set new source code for VBA module
        // You can retrieve object by integer or by name
        vbaModules.get(0).setSourceCode("Your VBA code...");
        vbaModules.get("Module1").setSourceCode("Your VBA code...");
        
        // Remove one of VbaModule from VbaModuleCollection
        vbaModules.remove(vbaModules.get(2));
      • get

        public VbaModule get(java.lang.String name)
        
        Retrieves a VbaModule object by name, or Null if not found.

        Example:

        Shows how to get access to VBA project information in the document.
        Document doc = new Document(getMyDir() + "VBA project.docm");
        
        // A VBA project inside the document is defined as a collection of VBA modules
        VbaProject vbaProject = doc.getVbaProject();
        System.out.println(vbaProject.isSigned()
                ? MessageFormat.format("Project name: {0} signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount())
                : MessageFormat.format("Project name: {0} not signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount()));
        
        VbaModuleCollection vbaModules = doc.getVbaProject().getModules(); 
        
        Assert.assertEquals(vbaModules.getCount(), 3);
        
        for (VbaModule module : vbaModules) {
            System.out.println(MessageFormat.format("Module name: {0};\nModule code:\n{1}\n", module.getName(), module.getSourceCode()));
        }
        
        // Set new source code for VBA module
        // You can retrieve object by integer or by name
        vbaModules.get(0).setSourceCode("Your VBA code...");
        vbaModules.get("Module1").setSourceCode("Your VBA code...");
        
        // Remove one of VbaModule from VbaModuleCollection
        vbaModules.remove(vbaModules.get(2));
    • Method Detail

      • add

        public void add(VbaModule vbaModule)
        Adds a module to the collection.

        Example:

        Shows how to create a VbaProject from a scratch for using macros.
        Document doc = new Document();
        
        // Create a new VBA project
        VbaProject project = new VbaProject();
        project.setName("Aspose.Project");
        doc.setVbaProject(project);
        
        // Create a new module and specify a macro source code
        VbaModule module = new VbaModule();
        module.setName("Aspose.Module");
        // VbaModuleType values:
        // procedural module - A collection of subroutines and functions
        // ------
        // document module - A type of VBA project item that specifies a module for embedded macros and programmatic access
        // operations that are associated with a document
        // ------
        // class module - A module that contains the definition for a new object. Each instance of a class creates
        // a new object, and procedures that are defined in the module become properties and methods of the object
        // ------
        // designer module - A VBA module that extends the methods and properties of an ActiveX control that has been
        // registered with the project
        module.setType(VbaModuleType.PROCEDURAL_MODULE);
        module.setSourceCode("New source code");
        
        // Add module to the VBA project
        doc.getVbaProject().getModules().add(module);
        
        doc.save(getArtifactsDir() + "Document.CreateVBAMacros.docm");
      • remove

        public void remove(VbaModule module)
        Removes the specified module from the collection.
        Parameters:
        module - The module to remove.

        Example:

        Shows how to get access to VBA project information in the document.
        Document doc = new Document(getMyDir() + "VBA project.docm");
        
        // A VBA project inside the document is defined as a collection of VBA modules
        VbaProject vbaProject = doc.getVbaProject();
        System.out.println(vbaProject.isSigned()
                ? MessageFormat.format("Project name: {0} signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount())
                : MessageFormat.format("Project name: {0} not signed; Project code page: {1}; Modules count: {2}\n", vbaProject.getName(), vbaProject.getCodePage(), vbaProject.getModules().getCount()));
        
        VbaModuleCollection vbaModules = doc.getVbaProject().getModules(); 
        
        Assert.assertEquals(vbaModules.getCount(), 3);
        
        for (VbaModule module : vbaModules) {
            System.out.println(MessageFormat.format("Module name: {0};\nModule code:\n{1}\n", module.getName(), module.getSourceCode()));
        }
        
        // Set new source code for VBA module
        // You can retrieve object by integer or by name
        vbaModules.get(0).setSourceCode("Your VBA code...");
        vbaModules.get("Module1").setSourceCode("Your VBA code...");
        
        // Remove one of VbaModule from VbaModuleCollection
        vbaModules.remove(vbaModules.get(2));