VBAを使ったプレゼンテーション

VBAマクロを追加する

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

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

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

// プレゼンテーションクラスのインスタンスを作成
Presentation pres = new Presentation();
try {
    // 新しいVBAプロジェクトを作成
    pres.setVbaProject(new VbaProject());
    
    // VBAプロジェクトに空のモジュールを追加
    IVbaModule module = pres.getVbaProject().getModules().addEmptyModule("Module");
    
    // モジュールのソースコードを設定
    module.setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
    
    // <stdole>への参照を作成
    VbaReferenceOleTypeLib stdoleReference = new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
    
    // Officeへの参照を作成
    VbaReferenceOleTypeLib officeReference = new 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プロジェクトに参照を追加
    pres.getVbaProject().getReferences().add(stdoleReference);
    pres.getVbaProject().getReferences().add(officeReference);
   
    // プレゼンテーションを保存
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

VBAマクロを削除する

PresentationクラスのVbaProjectプロパティを使用して、VBAマクロを削除できます。

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

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

// マクロを含むプレゼンテーションをロード
Presentation pres = new Presentation("VBA.pptm");
try {
    // Vbaモジュールにアクセスし、それを削除
    pres.getVbaProject().getModules().remove(pres.getVbaProject().getModules().get_Item(0));
    
    // プレゼンテーションを保存
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

VBAマクロを抽出する

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

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

// マクロを含むプレゼンテーションをロード
Presentation pres = new Presentation("VBA.pptm");
try {
    if (pres.getVbaProject() != null) // プレゼンテーションにVBAプロジェクトが含まれているか確認
    {
        for (IVbaModule module : pres.getVbaProject().getModules())
        {
            System.out.println(module.getName());
            System.out.println(module.getSourceCode());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}