Робота з VBA Macros
Visual Basic для додатків (VBA) Microsoft Word - проста, але потужна мова програмування, яка може бути використана для розширення функціональності. Aspose.Words API надає три класи для доступу до коду VBA:
- У VBAProject Клас надає доступ до інформації про проект ВБА
- У VBAModulesCollection Клас повертає колекцію модулів проекту ВБА
- У VbaModule Клас надає доступ до модуля проекту VBA
Створення проекту VBA
Aspose.Words API забезпечує VbaProject майно, щоб отримати або встановити VbaProject у документі.
Приклад коду показує, як створити проект VBA та модуль VBA разом з базовими властивостями, наприклад, Ім’я та тип:
// 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"); |
Читати Macros
Aspose.Words також надає користувачам можливість читати макроси VBA.
Приклад коду показує, як читати VBA Macros з документа:
// 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"); |
Модифікувати Macros
Використання Aspose.Words, користувачі можуть змінювати макроси VBA.
Приклад коду показує, як змінити VBA Macros за допомогою 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); |
Клон ВБА Проекти
З Aspose.Words Також можна клонувати проекти ВБА.
Приклад коду показує, як клонувати проект ВБА за допомогою програми Clone майно, що створює копію існуючого проекту:
// 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"); |
Клон ВБА Модуль
Ви також можете налаштувати модулі VBA, якщо це необхідно.
Приклад коду показує, як налаштувати модуль VBA за допомогою модуля VBA Clone майно, яке створює копію існуючого проекту
// 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"); |