VBAによるプレゼンテーション

Aspose.Slides.Vba名前空間には、マクロやVBAコードを操作するためのクラスとインターフェイスが含まれています。

VBAマクロの追加

Aspose.Slidesは、VBAプロジェクト(およびプロジェクト参照)を作成し、既存のモジュールを編集するためにVbaProjectクラスを提供します。IVbaProjectインターフェイスを使用して、プレゼンテーションに埋め込まれたVBAを管理できます。

  1. Presentationクラスのインスタンスを作成します。
  2. VbaProjectコンストラクタを使用して新しいVBAプロジェクトを追加します。
  3. VbaProjectにモジュールを追加します。
  4. モジュールのソースコードを設定します。
  5. への参照を追加します。
  6. Microsoft Officeへの参照を追加します。
  7. 参照をVBAプロジェクトに関連付けます。
  8. プレゼンテーションを保存します。

このPythonコードは、ゼロからプレゼンテーションにVBAマクロを追加する方法を示しています:

import aspose.slides as slides

# プレゼンテーションクラスのインスタンスを作成します
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("AddVBAMacros_out.pptm", slides.export.SaveFormat.PPTM)

VBAマクロの削除

VbaProjectプロパティを使用すると、PresentationクラスからVBAマクロを削除できます。

  1. Presentationクラスのインスタンスを作成し、マクロを含むプレゼンテーションを読み込みます。
  2. マクロモジュールにアクセスし、削除します。
  3. 修正されたプレゼンテーションを保存します。

このPythonコードは、VBAマクロを削除する方法を示しています:

import aspose.slides as slides

# マクロを含むプレゼンテーションを読み込みます
with slides.Presentation(path + "VBA.pptm") as presentation:
    # Vbaモジュールにアクセスし、削除します  
    presentation.vba_project.modules.remove(presentation.vba_project.modules[0])

    # プレゼンテーションを保存します
    presentation.save("RemovedVBAMacros_out.pptm", slides.export.SaveFormat.PPTM)

VBAマクロの抽出

  1. Presentationクラスのインスタンスを作成し、マクロを含むプレゼンテーションを読み込みます。
  2. プレゼンテーションにVBAプロジェクトが含まれているか確認します。
  3. VBAプロジェクト内のすべてのモジュールをループして、マクロを表示します。

このPythonコードは、マクロを含むプレゼンテーションからVBAマクロを抽出する方法を示しています:

import aspose.slides as slides

with slides.Presentation(path + "VBA.pptm") as pres:
    if pres.vba_project is not None: # プレゼンテーションにVBAプロジェクトが含まれているか確認します
        for module in pres.vba_project.modules:
            print(module.name)
            print(module.source_code)