Werk met VBA Makros
Visual Basic vir Toepassings (VBA) vir Microsoft Word is’n eenvoudige maar kragtige programmeertaal wat gebruik kan word om die funksionaliteit uit te brei. Aspose.Words API bied drie klasse om toegang tot die VBA projek bronkode te kry:
- Die VBAProject klas bied toegang tot die VBA projek inligting
- Die VBAModulesCollection klas gee terug die versameling van VBA projek modules
- Die VbaModule klas bied toegang tot die VBA projek module
Skep’n VBA Projek
Aspose.Words API verskaf die VbaProject eienskap om VbaProject in die dokument te kry of te stel.
Die volgende kode voorbeeld demonstreer hoe om’n VBA projek en VBA Module saam met basiese eienskappe bv Naam En Tipe te skep:
// 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"); |
Lees Makros
Aspose.Words bied ook gebruikers die vermoë om VBA makros te lees.
Die volgende kode voorbeeld toon hoe om VBA Makros lees van die dokument:
// 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"); |
Verander Makros
Gebruikers kan Aspose.Words gebruik om VBA makros te verander.
Die volgende kode voorbeeld toon hoe om VBA Makros te verander met behulp van die SourceCode eienskap:
// 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 Projek
Met Aspose.Words is dit ook moontlik om VBA projekte te kloon.
Die volgende kode voorbeeld demonstreer hoe om die VBA Projek te kloon met behulp van die Clone eienskap wat’n kopie van die bestaande projek skep:
// 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
Jy kan ook VBA modules kloon indien nodig.
Die volgende kode voorbeeld demonstreer hoe om die VBA Module te kloon met behulp van die Clone eienskap wat’n kopie van die bestaande projek skep.
// 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"); |