VBAによるプレゼンテーション
Contents
[
Hide
]
Aspose.Slides.Vba名前空間には、マクロやVBAコードを操作するためのクラスとインターフェイスが含まれています。
注意
マクロを含むプレゼンテーションを別のファイル形式(PDF、HTMLなど)に変換すると、Aspose.Slidesはすべてのマクロを無視します(マクロは生成されたファイルに持ち込まれません)。
プレゼンテーションにマクロを追加する場合や、マクロを含むプレゼンテーションを再保存する場合、Aspose.Slidesはマクロのバイトをそのまま書き込みます。
Aspose.Slidesはプレゼンテーション内のマクロを決して実行しません。
VBAマクロの追加
Aspose.Slidesは、VBAプロジェクト(およびプロジェクト参照)を作成し、既存のモジュールを編集するためにVbaProjectクラスを提供します。IVbaProjectインターフェイスを使用して、プレゼンテーションに埋め込まれたVBAを管理できます。
- Presentationクラスのインスタンスを作成します。
- VbaProjectコンストラクタを使用して新しいVBAプロジェクトを追加します。
- VbaProjectにモジュールを追加します。
- モジュールのソースコードを設定します。
への参照を追加します。 - Microsoft Officeへの参照を追加します。
- 参照をVBAプロジェクトに関連付けます。
- プレゼンテーションを保存します。
この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)
Asposeのマクロ削除ツールも確認することをお勧めします。これは、PowerPoint、Excel、Word文書からマクロを削除するための無料のWebアプリです。
VBAマクロの削除
VbaProjectプロパティを使用すると、PresentationクラスからVBAマクロを削除できます。
- Presentationクラスのインスタンスを作成し、マクロを含むプレゼンテーションを読み込みます。
- マクロモジュールにアクセスし、削除します。
- 修正されたプレゼンテーションを保存します。
この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マクロの抽出
- Presentationクラスのインスタンスを作成し、マクロを含むプレゼンテーションを読み込みます。
- プレゼンテーションにVBAプロジェクトが含まれているか確認します。
- 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)