VBA ソースコードの編集
Contents
[
Hide
Show
]概要
Microsoft Project (MPP/XML) ファイルは、プロジェクト関連の作業を自動化するマクロを格納する VBA モジュールを含む場合があります。バージョン 25.6、Aspose.Tasks for .NET は読み取りだけでなく、 既存の VBA モジュールのソースコードを編集すること プロジェクト内で。
これにより、Microsoft Project に依存せずに自動化ロジックを維持・更新できます。
既存モジュールのソースコードの編集
次の例は、名前が Module1
のモジュールのソースコードを既存のプロジェクトで編集する方法を示します。
1 Project project = new Project("FileWithVbaProject.mpp");
2
3 if (project.VbaProject.Modules.Count == 0)
4 {
5 throw new InvalidOperationException("Project should contain VBA modules");
6 }
7
8 var existingModule = project.VbaProject.Modules["Module1"];
9 existingModule.SourceCode = @"Sub Method()
10 MsgBox ""This is an updated text.""
11 End Sub";
12
13 // WriteVba flag should be specified in order to apply changes to MPP file.
14 project.Save("output.mpp", new MPPSaveOptions { WriteVba = true });
この例では、プロジェクトに VBA モジュールが含まれているかを確認し、名前でモジュールを検索してそのソースコードを置き換えます。変更を適用するには、 WriteVba
フラグを有効にしてプロジェクトを保存する必要があります。
よくある質問
質問:複数のモジュールを一度に更新できますか?
- はい。次の
VbaProject.Modules
collection を反復処理して各モジュールのSourceCode
property を更新できます。
質問:存在しないモジュールを更新しようとしたらどうなりますか?
- 例外がスローされます。編集する前にモジュールが存在するか確認する必要があります。
質問:VBA モジュールがないプロジェクトで VBA のソースコードを編集できますか?
- いいえ。対象の Microsoft Project ファイルには、少なくとも1つのモジュールを含む VBA プロジェクトが既に存在している必要があります。
質問:VBA モジュールの名前を変更できますか?
- 現時点では、既存モジュールのソースコードの更新と新しいモジュールの追加のみがサポートされています。
結論
Aspose.Tasks for .NET で VBA のソースコードを編集することで、プロジェクトのマクロを完全に制御でき、開発者は Microsoft Project に頼らずに Microsoft Project ファイル内のカスタムロジックを自動化、調整、維持できます。