Python을 사용하여 Word 문서에서 VBA 매크로 작업

VBA(Visual Basic for Applications)는 Word 문서의 작업을 자동화할 수 있는 강력한 프로그래밍 언어입니다. 또한 VBA 매크로를 사용하여 반복적인 작업을 매우 쉽게 수행할 수 있습니다. 이 기사에서는 MS Word 문서에서 VBA 프로젝트 및 모듈로 작업하는 방법을 배웁니다. 특히 이 기사에서는 Python에서 프로그래밍 방식으로 VBA 매크로를 생성, 수정 및 복제하는 방법을 다룹니다.

MS Word VBA 매크로와 함께 작동하는 Python 라이브러리

Word 파일에서 VBA 매크로로 작업하려면 Aspose.Words for Python을 사용합니다. Python 응용 프로그램 내에서 Word 문서를 만들고 조작하기 위한 강력한 라이브러리입니다. 다음 pip 명령을 사용하여 PyPI에서 애플리케이션에 라이브러리를 설치할 수 있습니다.

pip install aspose-words

Python의 MS Word 문서에서 VBA 매크로 만들기

다음은 Python을 사용하여 MS Word DOCM 파일에 VBA 매크로를 만드는 단계입니다.

  • Word 문서를 로드하거나 Document 클래스를 사용하여 새 문서를 만듭니다.
  • VbaProject 클래스의 개체를 만듭니다.
  • VbaProject.name 속성을 사용하여 프로젝트 이름을 설정합니다.
  • Document.vba\project 속성에 프로젝트를 할당합니다.
  • VbaModule 클래스의 개체를 만듭니다.
  • VbaModule.name 및 VbaModule.type 속성을 각각 사용하여 모듈의 이름과 유형을 설정합니다.
  • VbaModule.source\code 속성을 사용하여 소스 코드를 설정합니다.
  • Document.vba\project.modules.add(VbaModule) 메서드를 사용하여 문서의 VBA 프로젝트에 모듈을 추가합니다.
  • Document.save() 메서드를 사용하여 문서를 저장합니다.

다음 코드 샘플은 Python을 사용하여 DOCM 문서에서 VBA 매크로를 만드는 방법을 보여줍니다.

import aspose.words as aw

# Load Word document.
doc = aw.Document("document.docm")

# Create VBA project
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# Create a new module and specify a macro source code.
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# Add module to the VBA project.
doc.vba_project.modules.add(module)

# Save document.
doc.save("create_vba_project.docm")

Python의 Word 문서에서 VBA 매크로 수정

Word 문서의 기존 VBA 매크로에 원활하게 액세스하고 수정할 수도 있습니다. 다음 단계는 Python용 Aspose.Words를 사용하여 이를 달성하는 방법을 보여줍니다.

  • Document 클래스를 사용하여 Word 문서를 로드합니다.
  • Document.vba\project 속성을 사용하여 개체에 대한 VbaProject의 참조를 가져옵니다.
  • 인덱스를 사용하여 원하는 VBA 모듈에 액세스하고 VbaProject.modules[int].source\code 속성을 사용하여 소스 코드를 업데이트합니다.
  • Document.save() 메서드를 사용하여 문서를 저장합니다.

다음 코드 샘플은 Python을 사용하여 기존 MS Word VBA 매크로를 수정하는 방법을 보여줍니다.

import aspose.words as aw

# Load Word document.
doc = aw.Document("document.docm")

# Get reference of VBA project.
project = doc.vba_project

# Update source code.
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# Save document.
doc.save("modify_vba_macros.docm")

Python을 사용하여 Word 문서에서 VBA 매크로 복제

어떤 경우에는 한 Word 문서에서 다른 문서로 VBA 모듈 또는 전체 VBA 프로젝트를 복제해야 할 수 있습니다. 이를 위해 Aspose.Words for Python을 사용하면 복제본을 아주 쉽게 만들 수 있습니다. 다음 섹션에서는 VBA 모듈 또는 VBA 프로젝트를 복제하는 방법을 다룹니다.

VBA 모듈 복제

다음은 Python을 사용하여 한 DOCM 문서에서 다른 문서로 VBA 모듈의 복제본을 만드는 단계입니다.

  • Document 클래스를 사용하여 원본 Word 문서를 로드합니다.
  • Document 클래스를 사용하여 대상 Word 문서를 로드합니다.
  • 대상 Word 문서에 대한 VbaProject를 만듭니다.
  • Document.vba\project.modules.get_by\name(string).clone() 메서드를 사용하여 소스 Word 문서에서 개체로 VBA 모듈 복제를 가져옵니다.
  • Document.vba\project.modules.add(VbaModule) 메서드를 사용하여 복제된 모듈을 대상 문서에 추가합니다.
  • Document.save() 메서드를 사용하여 대상 문서를 저장합니다.

다음 코드 샘플은 Python에서 MS Word VBA 모듈을 복제하는 방법을 보여줍니다.

import aspose.words as aw

# Load source Word document.
doc = aw.Document("document.docm")

# Load destination Word document.
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

# Clone VBA module.
copyModule = doc.vba_project.modules.get_by_name("Module1").clone()
destDoc.vba_project.modules.add(copyModule)

# Save document.
destDoc.save("clone_vba_module.docm")

VBA 프로젝트 복제

다음은 Python에서 MS Word VBA 프로젝트를 복제하는 단계입니다.

  • Document 클래스를 사용하여 원본 Word 문서를 로드합니다.
  • Document 클래스를 사용하여 대상 Word 문서를 로드합니다.
  • Document.vba\project.clone() 메서드를 사용하여 소스 문서에서 VBA 프로젝트의 복제본을 가져오고 Document.vba\project 속성을 사용하여 대상 문서에 추가합니다.
  • Document.save() 메서드를 사용하여 대상 문서를 저장합니다.

다음 코드 샘플은 Python에서 한 Word 문서에서 다른 문서로 VBA 프로젝트를 복제하는 방법을 보여줍니다.

import aspose.words as aw

# Load source Word document.
doc = aw.Document("document.docm")

# Load destination Word document.
destDoc = aw.Document("dest_document.docm")

# Clone VBA project.
destDoc.vba_project = doc.vba_project.clone() 

# Save document.
destDoc.save("clone_vba_module.docm")

무료 API 라이선스 받기

평가 제한 없이 Aspose.Words for Python을 사용할 수 있는 임시 라이선스를 얻을 수 있습니다.

결론

이 기사에서는 Python을 사용하여 MS Word 문서에서 VBA 매크로를 만드는 방법을 배웠습니다. 또한 기존 VBA 모듈 또는 프로젝트를 프로그래밍 방식으로 수정하거나 복제하는 방법을 살펴보았습니다. 또한 문서를 사용하여 Python용 Aspose.Words의 다른 기능을 탐색할 수 있습니다. 질문이 있는 경우 포럼을 통해 언제든지 알려주십시오.

또한보십시오

정보: PowerPoint 프레젠테이션에서 Word 문서를 가져와야 하는 경우 Aspose Presentation to Word Document 변환기를 사용할 수 있습니다.