在 C# 中使用 VBA 宏

VBA(Visual Basic for Applications)是一种用于 MS Excel 文件中的编程语言,用于自动执行与电子表格相关的操作。 VBA 宏用于编写用户定义的函数,让您加快必须手动执行的任务。在本文中,您将学习如何以编程方式在 MS Excel 文件中使用 VBA 宏。在本文结束时,您将能够使用 C# 在 Excel 工作簿中提取、添加和修改 VBA 宏。

在 Excel 文件中使用 VBA 宏 - C# API

Aspose.Cells for .NET 是一个 C# 类库,旨在从 .NET 应用程序中自动执行电子表格操作。 API 提供了广泛的功能,使您能够创建、修改和转换 MS Excel 工作簿。此外,API 可以无缝地使用 VBA 宏。 Aspose.Cells for .NET 可作为 DLL 文件 下载 并托管在 NuGet 上。

PM> Install-Package Aspose.Cells

使用 C# 从 Excel 文件中提取 VBA 宏

让我们首先从现有 Excel 工作簿中提取 VBA 宏。以下是执行此操作的步骤。

以下代码示例演示如何使用 C# 从 Excel 工作簿中提取 VBA 宏。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-cells/Aspose.Cells-for-.NET
// 从源 Excel 文件创建工作簿对象
Workbook workbook = new Workbook("sample.xlsm");

// 从每个 VBA 模块中提取代码
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

使用 C# 将 VBA 宏添加到 Excel 文件

Aspose.Cells for .NET 还允许您将 VBA 宏添加到现有或新的 Excel 文件。这可以通过以下步骤来完成。

以下代码示例演示如何使用 C# 将 VBA 宏添加到 Excel 工作簿。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-cells/Aspose.Cells-for-.NET
// 创建新工作簿
Workbook workbook = new Workbook();

// 访问第一个工作表
Worksheet worksheet = workbook.Worksheets[0];

// 添加 VBA 模块
int idx = workbook.VbaProject.Modules.Add(worksheet);

// 访问 VBA 模块,设置其名称和代码
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";

// 保存工作簿
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

使用 C# 在 Excel 文件中修改 VBA 宏

您还可以使用以下步骤修改 Excel 文件中的现有 VBA 宏。

以下代码示例演示如何使用 C# 修改 Excel 文件中的 VBA 宏。

// 如需完整的示例和数据文件,请访问 https://github.com/aspose-cells/Aspose.Cells-for-.NET
// 从源 Excel 文件创建工作簿对象
Workbook workbook = new Workbook("sample.xlsm");

// 更改 VBA 模块代码
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // 用修改后的消息替换原始消息
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// 保存输出 Excel 文件
workbook.Save("output_out.xlsm");

获得免费许可证

您可以使用有效期为 30 天的临时许可证免费使用或评估 Aspose.Cells for .NET。 立即获取

结论

MS Excel 文件中的 VBA 宏用于自动执行与电子表格相关的各种类型的任务。为了以编程方式处理 VBA 宏,本文介绍了如何使用 C# 提取、添加和修改 VBA 模块中的代码。您可以使用 documentation 探索有关 C# 电子表格操作 API 的更多信息。

也可以看看

提示:您可能需要查看 Aspose 免费宏删除网络应用程序