VBAマクロは、PowerPointプレゼンテーションのさまざまな機能を自動化するために使用されます。たとえば、VBAを使用して、反復的なタスクを実行したり、グラフやフォームを生成したりできます。この記事では、PowerPointVBAマクロをプログラムで操作する方法を学習します。特に、この記事では、C#を使用してPowerPointプレゼンテーションでVBAマクロを追加、抽出、または削除する方法について説明します。
- PowerPoint VBAマクロ用のC#API
- C#を使用してPowerPointプレゼンテーションにVBAマクロを追加する
- PowerPointプレゼンテーションからVBAマクロを抽出する
- PowerPointプレゼンテーションからVBAマクロを削除する
- 無料のAPIライセンスを取得する
PowerPoint VBAマクロ用のC#API
Aspose.Slides for .NETは、C#を使用してPowerPointプレゼンテーションを作成、編集、変換できる機能豊富なAPIです。さらに、APIを使用すると、VBAマクロをシームレスに操作できます。 APIを使用するには、DLLをダウンロードするか、NuGetを使用してインストールします。
PM> Install-Package Aspose.Slides.NET
C#を使用してPowerPointプレゼンテーションにVBAマクロを追加する
以下は、C#を使用してPowerPointプレゼンテーションにVBAマクロを追加する手順です。
- まず、Presentationクラスのインスタンスを作成して、PowerPointプレゼンテーションをロードします。
- 新しいVbaProjectをPresentation.VbaProjectプロパティに割り当てます。
- Presentation.VbaProject.Modules.AddEmptyModule(string)メソッドを使用して、空のVBAモジュールを追加します。
- 追加されたモジュールの参照をIVbaModuleオブジェクトに取得します。
- IVbaModule.SourceCodeプロパティを使用して、VBAモジュールにソースコードを追加します。
- Microsoft Officeへの参照を作成し、それらをPresentation.VbaProject.Referencesコレクションに追加します。
- 最後に、Presentation.Save(string, SaveFormat.Pptm)メソッドを使用してプレゼンテーションファイルを保存します。
次のコードサンプルは、C#を使用してPowerPointプレゼンテーションにVBAマクロを追加する方法を示しています。
// プレゼンテーションを読み込む
using (Presentation presentation = new Presentation("presentation.pptm"))
{
// 新しいVBAプロジェクトを作成する
presentation.VbaProject = new VbaProject();
// 空のモジュールをVBAプロジェクトに追加します
IVbaModule module = presentation.VbaProject.Modules.AddEmptyModule("Module");
// モジュールのソースコードを設定する
module.SourceCode = @"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プロジェクトへの参照を追加します
presentation.VbaProject.References.Add(stdoleReference);
presentation.VbaProject.References.Add(officeReference);
// プレゼンテーションを保存
presentation.Save("AddVBAMacros.pptm", SaveFormat.Pptm);
}
C#を使用してPowerPointからVBAマクロを抽出する
Aspose.Slides for .NETを使用すると、PowerPointプレゼンテーションのVBAプロジェクトからVBAモジュールを抽出することもできます。この操作を実行する手順は次のとおりです。
- まず、Presentationクラスを使用してマクロ対応のPowerPointプレゼンテーションをロードします。
- Presentation.VbaProjectプロパティがnullでないかどうかを確認します。
- Presentation.VbaProject.Modulesコレクションの各IVbaModuleをループします。
- 最後に、IVbaModule.SourceCodeプロパティを使用してソースコードを抽出します。
次のコードサンプルは、C#を使用してPowerPointVBAマクロを抽出する方法を示しています。
// プレゼンテーションを読み込む
using (Presentation pres = new Presentation("presentation.pptm"))
{
if (pres.VbaProject != null) // check if Presentation contains VBA Project
{
foreach (IVbaModule module in pres.VbaProject.Modules)
{
Console.WriteLine(module.Name);
Console.WriteLine(module.SourceCode);
}
}
}
PowerPointVBAマクロを削除する
PowerPointプレゼンテーションから特定のVBAマクロを削除することもできます。このために、VBAプロジェクトからインデックスによってVBAモジュールにアクセスして削除します。この操作を実行する手順は次のとおりです。
- まず、Presentationクラスを使用してマクロ対応のPowerPointプレゼンテーションをロードします。
- Presentation.VbaProject.Modules.Remove(Presentation.VbaProject.Modules [0])メソッドを使用して、インデックスによってVBAモジュールを削除します。
- 最後に、Presentation.Save(string, SaveFormat.Pptm)メソッドを使用して更新されたプレゼンテーションを保存します。
次のコードサンプルは、PowerPointVBAマクロを削除する方法を示しています。
// プレゼンテーションを読み込む
using (Presentation presentation = new Presentation("Presentation.pptm"))
{
// VBAモジュールを削除します
presentation.VbaProject.Modules.Remove(presentation.VbaProject.Modules[0]);
// プレゼンテーションを保存する
presentation.Save("RemovedVBAMacros.pptm", SaveFormat.Pptm);
}
無料のAPIライセンスを取得する
一時ライセンスをリクエストすることで、評価の制限なしにAspose.Slides for .NETを試すことができます。
結論
この記事では、C#を使用してPowerPointVBAマクロを操作する方法を学習しました。特に、PowerPointプレゼンテーションでVBAマクロを追加、抽出、および削除する方法を見てきました。 APIの他の機能を調べるには、ドキュメントを参照してください。また、フォーラムからお気軽にご相談ください。
関連項目
ヒント:Aspose無料のマクロ削除Webアプリを確認することをお勧めします。