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