0

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 マクロ コード自体を編集して「公開」する必要があるのでしょうか。

解決策を探すためにかなりの量の検索を行い、探しているものに似た多くの記事/投稿を見つけましたが、それらはすべて異なっているようで、私の状況では機能しません。私はマクロ/アドインを使用するのが初めてなので、用語/理解も少しずれている可能性があります。

任意のガイダンスをいただければ幸いです。よろしくお願いします。

4

1 に答える 1