Travailler avec VBA macros

Visual Basic pour les applications (VBA) pour Microsoft Word est un langage de programmation simple mais puissant qui peut être utilisé pour étendre les fonctionnalités. Aspose.Words API fournit trois classes pour accéder au code source du projet VBA:

  • La classe VBAProject permet d’accéder aux informations du projet VBA
  • La classe VBAModulesCollection renvoie la collection de VBA modules de projet
  • La classe VbaModule donne accès au module de projet VBA

Créer un projet VBA

Aspose.Words API fournit la propriété VbaProject pour obtenir ou définir VbaProject dans le document.

L’exemple de code suivant montre comment créer un projet VBA et un module VBA avec des propriétés de base, par exemple Name et 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");

Lire les Macros

Aspose.Words permet également aux utilisateurs de lire les macros VBA.

L’exemple de code suivant montre comment lire les macros VBA à partir du document:

// 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");

Modifier les Macros

En utilisant Aspose.Words, les utilisateurs peuvent modifier VBA macros.

L’exemple de code suivant montre comment modifier les macros VBA à l’aide de la propriété SourceCode:

// 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);

Projet Clone VBA

Avec Aspose.Words, il est également possible de cloner VBA projets.

L’exemple de code suivant montre comment cloner le projet VBA à l’aide de la propriété Clone qui crée une copie du projet existant:

// 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");

Cloner le module VBA

Vous pouvez également cloner des modules VBA si nécessaire.

L’exemple de code suivant montre comment cloner le module VBA à l’aide de la propriété Clone qui crée une copie du projet existant.

// 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");