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 宏。以下是执行此操作的步骤。
- 创建 Workbook 类的对象以加载 Excel 文件。
- 将 Workbook.VbaProject.Modules 集合中的每个 VBA 模块访问到 VbaModule 对象中。
- 使用 VbaModule.Codes 属性从每个模块中检索代码。
以下代码示例演示如何使用 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 文件。这可以通过以下步骤来完成。
- 使用 Workbook 类创建新的 Excel 文件或加载现有的文件。
- 使用 Worksheet 类添加新工作表或获取现有工作表。
- 使用 Workbook.VbaProject.Modules.Add(Worksheet) 方法添加新的 VBA 模块并获取模块的 ID。
- 从 Workbook.VbaProject.Modules[idx] 集合访问 VBA 模块到 VbaModule 对象。
- 使用 VbaModule.Name 属性添加模块的名称。
- 使用 VbaModule.Codes 属性向模块添加代码。
- 使用 Workbook.Save(String, SaveFormat.Xlsm) 方法保存工作簿。
以下代码示例演示如何使用 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 宏。
- 使用 Workbook 类加载 Excel 文件。
- 从 Workbook.VbaProject.Modules 集合访问 VBA 模块到 VbaModule 对象。
- 使用 VbaModule.Codes 属性从所需模块中检索代码。
- 使用 Workbook.Save(String) 方法替换代码并保存 Excel 文件。
以下代码示例演示如何使用 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 免费宏删除网络应用程序。