Práce s VBA Macros

Visual Basic pro aplikace (VBA) pro Microsoft Word je jednoduchý, ale výkonný programovací jazyk, který lze použít k rozšíření funkčnosti. Aspose.Words API poskytuje tři třídy pro přístup ke zdrojovému kódu projektu VBA:

  • The VBAProject třída poskytuje přístup k informacím o projektu VBA
  • The VBAModulesCollection třída vrací kolekci projektových modulů VBA
  • The VbaModule třída poskytuje přístup k modulu projektu VBA

Vytvořit projekt VBA

Aspose.Words API poskytuje VbaProject vlastnost získat nebo nastavit VbaProject v dokumentu.

Následující příklad kódu ukazuje, jak vytvořit VBA projekt a VBA modul spolu se základními vlastnostmi např. Název a 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");

Čti Macros

Aspose.Words také poskytuje uživatelům schopnost číst makra VBA.

Následující příklad kódu ukazuje, jak číst VBA Macros 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");

Změnit makros

Použití Aspose.Words, uživatelé mohou upravit VBA makra.

Následující příklad kódu ukazuje, jak upravit VBA Macros pomocí SourceCode vlastnost:

// 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

S Aspose.Words je také možné naklonovat projekty VBA.

Následující příklad kódu ukazuje, jak naklonovat projekt VBA pomocí Clone vlastnost, která vytváří kopii stávajícího 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 Modul

V případě potřeby můžete také naklonovat VBA moduly.

Následující příklad kódu ukazuje, jak naklonovat VBA modul pomocí Clone vlastnost, která vytváří kopii stávajícího 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");