Excel マクロ有効ブックの VBA コードを管理します。

C# に VBA モジュールを追加します。

次のサンプル コードは、新しいワークブックを作成し、新しい VBA モジュールとマクロ コードを追加して、出力を XLSM 形式で保存します。一度、出力 XLSM ファイルを Microsoft Excel で開き、開発者 > Visual Basicメニュー コマンドを実行すると、“TestModule” という名前のモジュールが表示され、その中に次のマクロ コードが表示されます。

 Sub ShowMessage()

    MsgBox "Welcome to Aspose!"

End Sub

VBA モジュールとマクロ コードを使用して出力 XLSM ファイルを生成するサンプル コードを次に示します。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create new workbook
Workbook workbook = new Workbook();
// Access first worksheet
Worksheet worksheet = workbook.Worksheets[0];
// Add VBA Module
int idx = workbook.VbaProject.Modules.Add(worksheet);
// Access the VBA Module, set its name and codes
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx];
module.Name = "TestModule";
module.Codes = "Sub ShowMessage()" + "\r\n" +
" MsgBox \"Welcome to Aspose!\"" + "\r\n" +
"End Sub";
// Save the workbook
workbook.Save(dataDir + "output_out.xlsm", SaveFormat.Xlsm);

C# の VBA またはマクロを変更します。

次のサンプル コードは、次の VBA またはマクロ コードを含むソース Excel ファイルを読み込みます。

 Sub Button1_Click()

    MsgBox "This is test message."

End Sub

Aspose.Cells サンプルコードを実行すると、VBA またはマクロコードは次のように変更されます。

 Sub Button1_Click()

    MsgBox "This is Aspose.Cells message."

End Sub

ダウンロードできますソースの Excel ファイルそしてその出力エクセルファイル指定されたリンクから。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create workbook object from source Excel file
Workbook workbook = new Workbook(dataDir + "sample.xlsm");
// Change the VBA Module Code
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// Replace the original message with the modified message
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// Save the output Excel file
workbook.Save(dataDir + "output_out.xlsm");

先行トピック