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 的信息。此外,您可以通过我们的 论坛 提出您的问题和疑问。

也可以看看