Współpraca z VBA Macros
Visual Basic dla wniosków (VBA) Microsoft Word jest prostym, ale potężnym językiem programowania, który może być użyty do rozszerzenia funkcjonalności. Aspose.Words API zapewnia trzy klasy dostępu do kodu źródłowego projektu VBA:
- VBAProject klasa zapewnia dostęp do informacji o projekcie VBA
- VBAModulesCollection klasa zwraca kolekcję modułów projektu VBA
- VbaModule klasa zapewnia dostęp do modułu projektu VBA
Utwórz projekt VBA
Aspose.Words API zapewnia VbaProject właściwość do uzyskania lub ustawienia VbaProject w dokumencie.
Poniższy przykład kodu pokazuje jak stworzyć projekt VBA i moduł VBA wraz z podstawowymi właściwościami np. Nazwa i typ:
// 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"); |
Przeczytaj Macros
Aspose.Words zapewnia również użytkownikom możliwość odczytu makro VBA.
Poniższy przykład kodu pokazuje, jak odczytać Macros VBA z dokumentu:
// 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"); |
Modyfikuj makro
Stosowanie Aspose.Words, użytkownicy mogą modyfikować makro VBA.
Poniższy przykład kodu pokazuje jak zmodyfikować VBA Macros za pomocą SourceCode nieruchomość:
// 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); |
Klon VBA Projekt
Z Aspose.Words można również sklonować projekty VBA.
Poniższy przykład kodu pokazuje jak sklonować projekt VBA używając Clone nieruchomość, która tworzy kopię istniejącego projektu:
// 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"); |
Klon VBA Moduł
W razie potrzeby można również sklonować moduły VBA.
Poniższy przykład kodu pokazuje jak sklonować moduł VBA za pomocą Clone nieruchomość, która tworzy kopię istniejącego projektu
// 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"); |