com.aspose.words
Class VbaModuleCollection

java.lang.Object
    extended by 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));

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.