Работа с VBA Макрос

Visual Basic за заявления (VBA) за Microsoft Word е прост, но мощен програмен език, който може да се използва за разширяване на функционалността. Aspose.Words API осигурява три класа за достъп до изходния код на проекта VBA:

  • На VBAProject Класът осигурява достъп до информация за проекта VBA
  • На VBAModulesCollection клас връща колекцията на VBA проектни модули
  • На 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");

Чети макроси

Aspose.Words Също така дава възможност на потребителите да четат VBA макрос.

Следният пример за код показва как да прочетете VBA Макрос от документа:

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

Промяна на макроси

Използване 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);

Клон VBA Проект

С Aspose.Words възможно е също така да се клонират проекти на 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();
// 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");