Utilizzo di macro VBA
Visual Basic per applicazioni (VBA) per Microsoft Word è un linguaggio di programmazione semplice ma potente che può essere utilizzato per estendere la funzionalità. Aspose.Words API fornisce tre classi per accedere al codice sorgente del progetto VBA:
- La classe VBAProject fornisce l’accesso alle informazioni del progetto VBA
- La classe VBAModulesCollection restituisce la raccolta di moduli di progetto VBA
- La classe VbaModule fornisce l’accesso al modulo del progetto VBA
Creare un progetto VBA
Aspose.Words API fornisce la proprietà VbaProject per ottenere o impostare VbaProject nel documento.
Nell’esempio di codice seguente viene illustrato come creare un progetto VBA e un modulo VBA insieme alle proprietà di base, ad esempio Nome e tipo:
// 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"); |
Leggere le macro
Aspose.Words fornisce inoltre agli utenti la possibilità di leggere le macro VBA.
L’esempio di codice seguente mostra come leggere le macro VBA dal documento:
// 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"); |
Modifica macro
Usando Aspose.Words, gli utenti possono modificare le macro VBA.
L’esempio di codice seguente mostra come modificare le macro VBA utilizzando la proprietà 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); |
Clone VBA Progetto
Con Aspose.Words è anche possibile clonare progetti VBA.
Nell’esempio di codice seguente viene illustrato come clonare il progetto VBA utilizzando la proprietà Clone che crea una copia del progetto esistente:
// 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"); |
Clona VBA Modulo
È anche possibile clonare i moduli VBA se necessario.
Nell’esempio di codice seguente viene illustrato come clonare il modulo VBA utilizzando la proprietà Clone che crea una copia del progetto esistente.
// 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"); |