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の詳細を確認することもできます。また、フォーラムから質問や質問をすることもできます。