Werken met VBA Macros

Visual Basic voor aanvragen voor Microsoft Word is een eenvoudige maar krachtige programmeertaal die gebruikt kan worden om de functionaliteit uit te breiden. Aspose.Words API biedt drie klassen om toegang te krijgen tot de VBA project broncode:

  • De VBAProject klasse biedt toegang tot de VBA projectinformatie
  • De VBAModulesCollection klasse geeft de verzameling van VBA projectmodules terug
  • De VbaModule klasse biedt toegang tot de VBA project module

Een VBA-project aanmaken

Aspose.Words API levert de VbaProject eigenschap om VbaProject in het document te krijgen of in te stellen.

Het volgende voorbeeld van code laat zien hoe je een VBA project en VBA Module maakt samen met basiseigenschappen zoals. Naam en type:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
// Create a new VBA project.
VbaProject project = new VbaProject();
project.setName("AsposeProject");
doc.setVbaProject(project);
// Create a new module and specify a macro source code.
VbaModule module = new VbaModule();
module.setName("AsposeModule");
module.setType(VbaModuleType.PROCEDURAL_MODULE);
module.setSourceCode("New source code");
// Add module to the VBA project.
doc.getVbaProject().getModules().add(module);
doc.save(dataDir + "VbaProject_out.docm");

Macro’s lezen

Aspose.Words biedt gebruikers ook de mogelijkheid om VBA macro’s te lezen.

Het volgende voorbeeld van code laat zien hoe je VBA Macros uit het document leest:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
for (VbaModule module : doc.getVbaProject().getModules()) {
System.out.println(module.getSourceCode());
}
doc.save(dataDir + "VbaProject_out.docm");

Macro’s wijzigen

Gebruik Aspose.Words, gebruikers kunnen VBA macro’s wijzigen.

Het volgende voorbeeld van code laat zien hoe VBA Macros te wijzigen met behulp van de SourceCode eigenschap:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
String newSourceCode = "Test change source code";
// Choose a module, and set a new source code.
project.getModules().get(0).setSourceCode(newSourceCode);

Kloon VBA Project

Met Aspose.Words Het is ook mogelijk om VBA-projecten te klonen.

Het volgende voorbeeld van code laat zien hoe je het VBA Project met behulp van de Clone eigenschap die een kopie van het bestaande project aanmaakt:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
// Clone the whole project.
destDoc.setVbaProject(doc.getVbaProject().deepClone());
destDoc.save(dataDir + "output.docm");

Kloon VBA Module

U kunt ook VBA modules klonen indien nodig.

Het volgende voorbeeld van code toont hoe de VBA Module te klonen met behulp van de Clone eigenschap die een kopie maakt van het bestaande project

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "VbaProject_out.docm");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
destDoc.setVbaProject(new VbaProject());
// Clone a single module.
VbaModule copyModule = doc.getVbaProject().getModules().get("Module1").deepClone();
destDoc.getVbaProject().getModules().add(copyModule);
destDoc.save(dataDir + "output.docm");