PythonのPPTX

VBAマクロを使用すると、PowerPointプレゼンテーションのさまざまな種類の操作を自動化できます。これらを使用して、グラフの生成、非表示のオブジェクトの非表示の解除、およびプレゼンテーションでのさまざまな反復タスクの実行を行うことができます。 Pythonアプリケーション内からPowerPointプレゼンテーションを操作しているときに、VBAマクロを操作する必要がある場合があります。したがって、この記事では、Pythonを使用してPowerPointでVBAマクロを追加、抽出、および削除する方法を学習します。

PowerPointでVBAマクロを操作するPythonライブラリ

PowerPointプレゼンテーションでVBAマクロを操作するには、Aspose.Slides forPythonを使用します。ライブラリは、PowerPointプレゼンテーションを作成、編集、および変換するための豊富な機能セットを提供します。次のコマンドを使用して、PyPIからライブラリをインストールできます。

> pip install aspose.slides

PythonのPowerPointプレゼンテーションにVBAマクロを追加する

以下は、Pythonを使用してPowerPointプレゼンテーションにVBAマクロを追加する手順です。

  • まず、Presentationクラスを使用してPowerPointプレゼンテーションをロードまたは作成します。
  • 次に、新しいVbaProjectを作成し、それをPresentation.vba\projectプロパティに割り当てます。
  • その後、Presentation.vba \ project.modules.add \ empty \ module(string)メソッドを使用して空のVBAモジュールを追加します。
  • IVbaModule.source \ codeプロパティを使用して、VBAモジュールにソースコードを追加します。
  • 参照を関連付けて、それらをPresentation.vba\project.referencesコレクションに追加します。
  • 最後に、Presentation.save(string, SaveFormat.PPTM)メソッドを使用してプレゼンテーションファイルを保存します。

次のコードサンプルは、Pythonを使用してPowerPointプレゼンテーションにVBAマクロを追加する方法を示しています。

# Create or load a presentation
with slides.Presentation() as presentation:
    # Create new VBA project
    presentation.vba_project = slides.vba.VbaProject()

    # Add empty module to the VBA project
    module = presentation.vba_project.modules.add_empty_module("Module")

    # Set module source code
    module.source_code = "Sub Test(oShape As Shape) MsgBox ""Test"" End Sub"

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

    # Create reference to 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")

    # add references to the VBA project
    presentation.vba_project.references.add(stdoleReference)
    presentation.vba_project.references.add(officeReference)

    # Save presentation
    presentation.save("add-vba-macro.pptm", slides.export.SaveFormat.PPTM)

PythonでPowerPointからVBAマクロを抽出する

PowerPointプレゼンテーションに追加されたVBAマクロにアクセスして、それらの情報を抽出することもできます。次の手順は、VBAマクロを抽出し、その名前とソースコードをPythonで出力する方法を示しています。

  • まず、Presentationクラスを使用してマクロ対応のプレゼンテーションをロードします。
  • 次に、Presentation.vba \ projectプロパティを使用して、プレゼンテーションにVBAプロジェクトが含まれているかどうかを確認します。
  • Presentation.vba\project.modulesコレクションの各VBAモジュールにアクセスします。
  • 最後に、VBAモジュールのソースコードと名前を抽出します。

次のコードサンプルは、PythonでPowerPointVBAマクロを抽出する方法を示しています。

# Load a presentation
with slides.Presentation("presentation.pptm") as presentation:
    
    # Check if presentation contains VBA Project
    if presentation.vba_project is not None:
        
        # Print each module
        for module in presentation.vba_project.modules:
            print(module.name)
            print(module.source_code)

PowerPointプレゼンテーションからVBAマクロを削除する

VBAマクロを削除するには、そのインデックスを使用してアクセスする必要があります。マクロの参照を取得したら、コレクションから削除できます。以下は、PowerPointプレゼンテーションからVBAマクロを削除する手順です。

  • まず、Presentationクラスを使用してマクロ対応のPowerPointプレゼンテーションをロードします。
  • 次に、Presentation.vba \ project.modules.remove(Presentation.vba \ project.modules [index])メソッドを使用してVBAマクロを削除します。
  • 最後に、Presentation.save(string, SaveFormat.PPTM)メソッドを使用して、更新されたプレゼンテーションを保存します。

次のコードサンプルは、PythonでVBAマクロを削除する方法を示しています。

# Load a presentation
with slides.Presentation("presentation.pptm") as presentation:
    # Remove VBA macro using index
    presentation.vba_project.modules.remove(presentation.vba_project.modules[0])

    # Save presentation
    presentation.save("remove-vba-macro.pptm", slides.export.SaveFormat.PPTM)

無料ライセンスを取得する

無料の一時ライセンスを取得することで、評価の制限なしにAspose.Slides for Pythonを使用できます。

結論

この記事では、Pythonを使用してPowerPointプレゼンテーションでVBAマクロを操作する方法を学習しました。コードサンプルを使用して、PowerPointプレゼンテーションでVBAマクロを追加、抽出、および削除する方法を示しました。さらに、ドキュメントにアクセスして、Python用のAspose.Slidesの詳細を確認することもできます。また、フォーラムから質問や質問をすることもできます。

関連項目