Làm việc với Macro VBA trong Tài liệu Word bằng Python

Visual Basic for Applications (VBA) là một ngôn ngữ lập trình mạnh mẽ cho phép bạn tự động hóa các tác vụ trong tài liệu Word. Hơn nữa, bạn có thể thực hiện các tác vụ lặp đi lặp lại với macro VBA khá dễ dàng. Trong bài viết này, bạn sẽ học cách làm việc với các dự án và mô-đun VBA trong tài liệu MS Word. Đặc biệt, bài viết sẽ đề cập đến cách tạo, sửa đổi và sao chép macro VBA theo lập trình bằng Python.

Thư viện Python để làm việc với Macro MS Word VBA

Để làm việc với Macro VBA trong tệp Word, chúng tôi sẽ sử dụng Aspose.Words dành cho Python. Nó là một thư viện mạnh mẽ để tạo và thao tác các tài liệu Word từ bên trong các ứng dụng Python. Bạn có thể cài đặt thư viện trong ứng dụng của mình từ PyPI bằng lệnh pip sau.

pip install aspose-words

Tạo Macro VBA trong Tài liệu MS Word bằng Python

Sau đây là các bước để tạo macro VBA trong tệp MS Word DOCM bằng Python.

  • Tải tài liệu Word hoặc tạo tài liệu mới bằng lớp Tài liệu.
  • Tạo một đối tượng của lớp VbaProject.
  • Đặt tên của dự án bằng cách sử dụng thuộc tính VbaProject.name.
  • Gán dự án cho thuộc tính Document.vbaproject.
  • Tạo một đối tượng của lớp VbaModule.
  • Đặt tên và loại mô-đun bằng cách sử dụng các thuộc tính VbaModule.name và VbaModule.type tương ứng.
  • Đặt mã nguồn bằng thuộc tính VbaModule.sourcecode.
  • Thêm mô-đun vào dự án VBA của tài liệu bằng phương pháp Document.vbaproject.modules.add (VbaModule).
  • Lưu tài liệu bằng phương thức Document.save().

Mẫu mã sau đây cho thấy cách tạo macro VBA trong tài liệu DOCM bằng Python.

import aspose.words as aw

# Tải tài liệu Word.
doc = aw.Document("document.docm")

# Tạo dự án VBA
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# Tạo một mô-đun mới và chỉ định một mã nguồn macro.
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# Thêm mô-đun vào dự án VBA.
doc.vba_project.modules.add(module)

# Lưu tài liệu.
doc.save("create_vba_project.docm")

Sửa đổi Macro VBA trong Tài liệu Word bằng Python

Bạn cũng có thể truy cập và sửa đổi các macro VBA hiện có trong tài liệu Word một cách liền mạch. Các bước sau đây trình bày cách đạt được điều này bằng cách sử dụng Aspose.Words dành cho Python.

  • Tải tài liệu Word bằng lớp Tài liệu.
  • Nhận tham chiếu của VbaProject vào một đối tượng bằng cách sử dụng thuộc tính Document.vbaproject.
  • Truy cập mô-đun VBA mong muốn bằng chỉ mục và cập nhật mã nguồn của nó bằng thuộc tính VbaProject.modules [int] .sourcecode.
  • Lưu tài liệu bằng phương thức Document.save().

Mẫu mã sau đây cho thấy cách sửa đổi macro MS Word VBA hiện có bằng Python.

import aspose.words as aw

# Tải tài liệu Word.
doc = aw.Document("document.docm")

# Nhận tài liệu tham khảo của dự án VBA.
project = doc.vba_project

# Cập nhật mã nguồn.
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# Lưu tài liệu.
doc.save("modify_vba_macros.docm")

Sao chép Macro VBA trong Tài liệu Word bằng Python

Trong một số trường hợp nhất định, bạn có thể cần sao chép một mô-đun VBA hoặc toàn bộ dự án VBA từ tài liệu Word này sang tài liệu Word khác. Để đạt được điều này, Aspose.Words for Python cho phép bạn tạo các bản sao khá dễ dàng. Các phần sau đây trình bày cách sao chép một mô-đun VBA hoặc một dự án VBA.

Sao chép một mô-đun VBA

Sau đây là các bước để tạo bản sao của mô-đun VBA từ tài liệu DOCM này sang tài liệu DOCM khác bằng Python.

  • Tải tài liệu Word nguồn bằng lớp Tài liệu.
  • Tải tài liệu Word đích bằng lớp Tài liệu.
  • Tạo một VbaProject cho tài liệu Word đích.
  • Lấy bản sao của mô-đun VBA từ tài liệu Word nguồn thành một đối tượng bằng cách sử dụng phương thức Document.vbaproject.modules.getbyname (string) .clone().
  • Thêm mô-đun đã nhân bản vào tài liệu đích bằng phương pháp Document.vbaproject.modules.add (VbaModule).
  • Lưu tài liệu đích bằng phương thức Document.save().

Mẫu mã sau đây cho thấy cách sao chép mô-đun MS Word VBA trong Python.

import aspose.words as aw

# Tải tài liệu Word nguồn.
doc = aw.Document("document.docm")

# Tải tài liệu Word đích.
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

# Sao chép mô-đun VBA.
copyModule = doc.vba_project.modules.get_by_name("Module1").clone()
destDoc.vba_project.modules.add(copyModule)

# Lưu tài liệu.
destDoc.save("clone_vba_module.docm")

Sao chép một dự án VBA

Sau đây là các bước để sao chép một dự án MS Word VBA bằng Python.

  • Tải tài liệu Word nguồn bằng lớp Tài liệu.
  • Tải tài liệu Word đích bằng lớp Tài liệu.
  • Lấy bản sao của dự án VBA từ tài liệu nguồn bằng phương thức Document.vbaproject.clone() và thêm nó vào tài liệu đích bằng thuộc tính Document.vbaproject.
  • Lưu tài liệu đích bằng phương thức Document.save().

Mẫu mã sau đây cho thấy cách sao chép một dự án VBA từ tài liệu Word này sang tài liệu Word khác bằng Python.

import aspose.words as aw

# Tải tài liệu Word nguồn.
doc = aw.Document("document.docm")

# Tải tài liệu Word đích.
destDoc = aw.Document("dest_document.docm")

# Dự án VBA nhân bản.
destDoc.vba_project = doc.vba_project.clone() 

# Lưu tài liệu.
destDoc.save("clone_vba_module.docm")

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời để sử dụng Aspose.Words dành cho Python mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách tạo macro VBA trong tài liệu MS Word bằng Python. Hơn nữa, bạn đã thấy cách sửa đổi hoặc sao chép các mô-đun hoặc dự án VBA hiện có theo lập trình. Ngoài ra, bạn có thể khám phá các tính năng khác của Aspose.Words for Python bằng cách sử dụng tài liệu. Trong trường hợp bạn có bất kỳ câu hỏi nào, vui lòng cho chúng tôi biết qua diễn đàn của chúng tôi.

Xem thêm

Thông tin: Nếu bạn cần lấy tài liệu Word từ bản trình bày PowerPoint, bạn có thể sử dụng trình chuyển đổi Aspose Trình bày sang Tài liệu Word.