VBA매크로 작업

Microsoft Word에 대한Visual Basic응용 프로그램(VBA)은 기능을 확장하는 데 사용할 수있는 간단하지만 강력한 프로그래밍 언어입니다. Aspose.WordsAPIVBA프로젝트 소스 코드에 액세스 할 수있는 세 가지 클래스를 제공합니다:

  • VBAProject클래스는VBA프로젝트 정보에 대한 액세스를 제공합니다
  • VBAModulesCollection클래스는VBA프로젝트 모듈의 컬렉션을 반환합니다
  • VbaModule클래스는VBA프로젝트 모듈에 대한 액세스를 제공합니다

VBA프로젝트 만들기

Aspose.WordsAPI는 문서에서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매크로를 수정할 수 있습니다.

다음 코드 예제에서는SourceCode속성을 사용하여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");
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프로젝트를 복제할 수도 있습니다.

다음 코드 예제에서는 기존 프로젝트의 복사본을 만드는Clone속성을 사용하여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");
VbaProject project = doc.getVbaProject();
Document destDoc = new Document();
// Clone the whole project.
destDoc.setVbaProject(doc.getVbaProject().deepClone());
destDoc.save(dataDir + "output.docm");

복제VBA모듈

필요한 경우VBA모듈을 복제 할 수도 있습니다.

다음 코드 예제에서는 기존 프로젝트의 복사본을 만드는Clone속성을 사용하여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");
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");