使用 Python 在 Word 文檔中使用 VBA 宏

Visual Basic for Applications (VBA) 是一種功能強大的編程語言,可讓您自動執行 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.vbaproject 屬性。
  • 創建 VbaModule 類的對象。
  • 分別使用 VbaModule.name 和 VbaModule.type 屬性設置模塊的名稱和類型。
  • 使用 VbaModule.sourcecode 屬性設置源代碼。
  • 使用 Document.vbaproject.modules.add(VbaModule) 方法將模塊添加到文檔的 VBA 項目中。
  • 使用 Document.save() 方法保存文檔。

以下代碼示例顯示如何使用 Python 在 DOCM 文檔中創建 VBA 宏。

import aspose.words as aw

# 加載 Word 文檔。
doc = aw.Document("document.docm")

# 創建 VBA 項目
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# 創建一個新模塊並指定一個宏源代碼。
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# 將模塊添加到 VBA 項目。
doc.vba_project.modules.add(module)

# 保存文檔。
doc.save("create_vba_project.docm")

在 Python 中修改 Word 文檔中的 VBA 宏

您還可以無縫地訪問和修改 Word 文檔中現有的 VBA 宏。以下步驟演示瞭如何使用 Aspose.Words for Python 實現這一點。

  • 使用 Document 類加載 Word 文檔。
  • 使用 Document.vbaproject 屬性將 VbaProject 引用到對像中。
  • 使用索引訪問所需的 VBA 模塊並使用 VbaProject.modules[int].sourcecode 屬性更新其源代碼。
  • 使用 Document.save() 方法保存文檔。

以下代碼示例顯示瞭如何使用 Python 修改現有的 MS Word VBA 宏。

import aspose.words as aw

# 加載 Word 文檔。
doc = aw.Document("document.docm")

# 獲取 VBA 項目的參考。
project = doc.vba_project

# 更新源代碼。
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# 保存文檔。
doc.save("modify_vba_macros.docm")

使用 Python 在 Word 文檔中克隆 VBA 宏

在某些情況下,您可能需要將 VBA 模塊或整個 VBA 項目從一個 Word 文檔克隆到另一個文檔。為此,Aspose.Words for Python 允許您非常輕鬆地創建克隆。以下部分介紹瞭如何克隆 VBA 模塊或 VBA 項目。

克隆 VBA 模塊

以下是使用 Python 從一個 DOCM 文檔到另一個文檔創建 VBA 模塊克隆的步驟。

  • 使用 Document 類加載源 Word 文檔。
  • 使用 Document 類加載目標 Word 文檔。
  • 為目標 Word 文檔創建一個 VbaProject。
  • 使用 Document.vbaproject.modules.getbyname(string).clone() 方法將 VBA 模塊從源 Word 文檔克隆到對像中。
  • 使用 Document.vbaproject.modules.add(VbaModule) 方法將克隆的模塊添加到目標文檔中。
  • 使用 Document.save() 方法保存目標文檔。

以下代碼示例顯示如何在 Python 中克隆 MS Word VBA 模塊。

import aspose.words as aw

# 加載源 Word 文檔。
doc = aw.Document("document.docm")

# 加載目標 Word 文檔。
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

# 克隆 VBA 模塊。
copyModule = doc.vba_project.modules.get_by_name("Module1").clone()
destDoc.vba_project.modules.add(copyModule)

# 保存文檔。
destDoc.save("clone_vba_module.docm")

克隆 VBA 項目

以下是在 Python 中克隆 MS Word VBA 項目的步驟。

  • 使用 Document 類加載源 Word 文檔。
  • 使用 Document 類加載目標 Word 文檔。
  • 使用 Document.vbaproject.clone() 方法從源文檔中獲取 VBA 項目的克隆,並使用 Document.vbaproject 屬性將其添加到目標文檔。
  • 使用 Document.save() 方法保存目標文檔。

下面的代碼示例演示如何在 Python 中將 VBA 項目從一個 Word 文檔克隆到另一個文檔。

import aspose.words as aw

# 加載源 Word 文檔。
doc = aw.Document("document.docm")

# 加載目標 Word 文檔。
destDoc = aw.Document("dest_document.docm")

# 克隆 VBA 項目。
destDoc.vba_project = doc.vba_project.clone() 

# 保存文件。
destDoc.save("clone_vba_module.docm")

獲取免費的 API 許可證

您可以獲得 臨時許可 以在沒有評估限制的情況下使用 Aspose.Words for Python。

結論

在本文中,您學習瞭如何使用 Python 在 MS Word 文檔中創建 VBA 宏。此外,您還看到瞭如何以編程方式修改或克隆現有的 VBA 模塊或項目。此外,您可以使用 文檔 探索 Aspose.Words for Python 的其他功能。如果您有任何疑問,請隨時通過我們的 論壇 告訴我們。

也可以看看

信息:如果您需要從 PowerPoint 演示文稿中獲取 Word 文檔,您可以使用 Aspose Presentation to Word Document 轉換器。