Python 中的 PPTX

VBA 宏允許您自動執行 PowerPoint 演示文稿中的各種類型的操作。您可以使用它們來生成圖表、取消隱藏隱藏的對像以及在演示文稿中執行不同的重複性任務。在 Python 應用程序中處理 PowerPoint 演示文稿時,您可能需要操作 VBA 宏。因此,在本文中,您將學習如何使用 Python 在 PowerPoint 中添加、提取和刪除 VBA 宏。

在 PowerPoint 中使用 VBA 宏的 Python 庫

要在 PowerPoint 演示文稿中使用 VBA 宏,我們將使用 Aspose.Slides for Python。該庫提供了一組豐富的功能來創建、編輯和轉換 PowerPoint 演示文稿。您可以使用以下命令從 PyPI 安裝庫。

> pip install aspose.slides

在 Python 中的 PowerPoint 演示文稿中添加 VBA 宏

以下是使用 Python 在 PowerPoint 演示文稿中添加 VBA 宏的步驟。

  • 首先,使用 Presentation 類加載或創建 PowerPoint 演示文稿。
  • 然後,創建一個新的 VbaProject 並將其分配給 Presentation.vbaproject 屬性。
  • 之後,使用 Presentation.vbaproject.modules.addemptymodule(string) 方法添加一個空的 VBA 模塊。
  • 使用 IVbaModule.sourcecode 屬性將源代碼添加到 VBA 模塊。
  • 關聯引用並將它們添加到 Presentation.vbaproject.references 集合。
  • 最後,使用 Presentation.save(string, SaveFormat.PPTM) 方法保存演示文件。

以下代碼示例演示如何使用 Python 在 PowerPoint 演示文稿中添加 VBA 宏。

# 創建或加載演示文稿
with slides.Presentation() as presentation:
    # 創建新的 VBA 項目
    presentation.vba_project = slides.vba.VbaProject()

    # 將空模塊添加到 VBA 項目
    module = presentation.vba_project.modules.add_empty_module("Module")

    # 設置模塊源碼
    module.source_code = "Sub Test(oShape As Shape) MsgBox ""Test"" End Sub"

    # 創建參考<stdole>
    stdoleReference = slides.vba.VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation")

    # 創建對 Office 的引用
    officeReference =slides.vba.VbaReferenceOleTypeLib("Office", "*\\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE14\\MSO.DLL#Microsoft Office 14.0 Object Library")

    # 添加對 VBA 項目的引用
    presentation.vba_project.references.add(stdoleReference)
    presentation.vba_project.references.add(officeReference)

    # 保存演示文稿
    presentation.save("add-vba-macro.pptm", slides.export.SaveFormat.PPTM)

在 Python 中從 PowerPoint 中提取 VBA 宏

您還可以訪問添加到 PowerPoint 演示文稿的 VBA 宏並提取其信息。以下步驟演示瞭如何提取 VBA 宏並在 Python 中打印其名稱和源代碼。

  • 首先,使用 Presentation 類加載啟用宏的演示文稿。
  • 然後,使用 Presentation.vbaproject 屬性檢查演示文稿是否包含 VBA 項目。
  • 訪問 Presentation.vbaproject.modules 集合中的每個 VBA 模塊。
  • 最後,提取VBA模塊的源代碼和名稱。

以下代碼示例顯示如何在 Python 中提取 PowerPoint VBA 宏。

# 加載演示文稿
with slides.Presentation("presentation.pptm") as presentation:
    
    # 檢查演示文稿是否包含 VBA 項目
    if presentation.vba_project is not None:
        
        # 打印每個模塊
       for module in presentation.vba_project.modules:
            print(module.name)
            print(module.source_code)

從 PowerPoint 演示文稿中刪除 VBA 宏

要刪除 VBA 宏,您需要使用它的索引來訪問它。獲得宏的引用後,您可以將其從集合中刪除。以下是從 PowerPoint 演示文稿中刪除 VBA 宏的步驟。

  • 首先,使用 Presentation 類加載啟用宏的 PowerPoint 演示文稿。
  • 然後,使用 Presentation.vbaproject.modules.remove(Presentation.vbaproject.modules[index]) 方法刪除 VBA 宏。
  • 最後,使用 Presentation.save(string, SaveFormat.PPTM) 方法保存更新的演示文稿。

以下代碼示例顯示如何在 Python 中刪除 VBA 宏。

# 加載演示文稿
with slides.Presentation("presentation.pptm") as presentation:
    # 使用索引刪除 VBA 宏
    presentation.vba_project.modules.remove(presentation.vba_project.modules[0])

    # 保存演示文稿
    presentation.save("remove-vba-macro.pptm", slides.export.SaveFormat.PPTM)

獲得免費許可證

通過獲得免費臨時許可證,您可以不受評估限制地使用 Aspose.Slides for Python。

結論

在本文中,您了解瞭如何使用 Python 在 PowerPoint 演示文稿中使用 VBA 宏。借助代碼示例,我們演示瞭如何在 PowerPoint 演示文稿中添加、提取和刪除 VBA 宏。此外,您可以訪問 文檔 來探索更多關於 Aspose.Slides for Python 的信息。此外,您可以通過我們的 論壇 提出您的問題和疑問。

也可以看看