gpt4 book ai didi

excel - 从 .NET 将代码写入 VBA IDE

转载 作者:行者123 更新时间:2023-12-04 20:17:40 26 4
gpt4 key购买 nike

我正在寻找一种将 VB.NET 加载项中的代码写入 VBA 项目的方法

因此,将“Msgbox(“Hello world!”)”作为 .NET 的 Excel 项目的一部分写入 .bas 模块,因此从 .NET 编写的代码将是一些预先编写的 VBA,以字符串形式存储并注入(inject)到 VBA 项目中

我有遗留代码,用于在 VBA 中执行此类操作,使用 VBE 属性为 VBA IDE 创建命令栏并将代码写入其他模块或创建新模块,但我希望能够做到就像我在 VB.NET 的主题中所说的那样[最好来自创建的要在 Excel 功能区上显示的加载项],或者来自可以最小化到托盘的独立 winform 应用程序。

我想做的两件事是:

  • 为了监控 VBA 代码性能,我提到的遗留代码基本上是在项目中每个过程的开始和结束时插入对另一个子的调用,并写入 .csv,以便您知道每个子和函数运行多长时间
  • 要将 VBA 项目分解为组件以便它们可以添加到 TFS,基本上循环遍历 VBA 项目的所有组件并将它们导出到一个文件夹,以便可以将它们添加到 TFS 以便更好地跟踪更改的源代码

  • 有人可以指出我从 vb.net 向 VBA 模块编写代码的示例[如果有的话],或者就如何实现这一点提供指导。

    我正在使用 .net framework 4.5 和 Visual Studio 2012 与 vb,但我对 c# 示例也很好

    非常感谢。

    最佳答案

    我假设你已经想通了,但以防万一:

    VBE 对象树通过自动化公开 - 只需通过 CreateObject 调用获取您正在处理的任何 Office 文件的应用程序对象,然后执行您在 VBA 中所做的相同操作(显然,从 VB6 到 .net 进行适当的更改)。

    exl = CreateObject("Excel.Sheet")
    exl.Application.Workbooks.Open("whatever.xlsx")
    'exl.Application.VBE.ActiveVBProject etc etc

    关于excel - 从 .NET 将代码写入 VBA IDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18760964/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com