PowerPoint プレゼンテーションを開き、アニメーションを含むスライドを個別のスライドに分割し、プレゼンテーション全体を一連の JPG 画像にエクスポートする C# アプリケーションを設計しています。Microsoft Office 2010 を使用して、Visual Studio 2010 で作業しています。
このプロジェクトは、別の開発者が親切に提供してくれた VBA マクロとアドインであるPPspliTを中心としており、非常にうまく機能します。(ありがとう!) 要するに、(別のマクロや Office アドインではなく) 外部 C# アプリケーションを使用して、このアドインを自動化しようとしています。私の現在のコードは、Microsoft の役立つ例に基づいています。変換する PowerPoint ファイルにPPspliT_main
マクロが含まれてRunMacro
いる場合、例の関数は次のように使用すると問題なく動作します。
RunMacro(oPP, new Object[]{"'pres1.ppt'!PPspliT_main"});
ただし、マクロが PowerPoint ファイル自体に保存されていない場合、(アドインがインストールされていても) マクロが存在しないため、RunMacro
関数のコードは をスローします。TargetInvocationException
アドインの機能を利用して、マクロが保存されているものだけでなく、任意の PowerPoint ファイルを操作できるようにしたいと考えています。これを達成する簡単な方法があると思います。
に似た関数Application.CommandBars.ExecuteMso("Copy")
は私が必要としているもののように思えますが、私が読んだことから、idMso を持つのは組み込み関数だけで、カスタム関数 (このような関数) は持たないように思えます。これは本当ですか?それとも、C# アプリケーションから呼び出すために、PPspliT マクロ コード自体を編集して「公開」する必要があるのでしょうか。
解決策を探すためにかなりの量の検索を行い、探しているものに似た多くの記事/投稿を見つけましたが、それらはすべて異なっているようで、私の状況では機能しません。私はマクロ/アドインを使用するのが初めてなので、用語/理解も少しずれている可能性があります。
任意のガイダンスをいただければ幸いです。よろしくお願いします。