Vba 有没有一种方法可以通过编程方式读取宏描述?

Vba 有没有一种方法可以通过编程方式读取宏描述?,vba,excel,Vba,Excel,我正在使用Excel for Mac 2011。使用Application.MacroOptions(macroName,macroDesc)以编程方式向宏添加描述非常容易。但是,如何以编程方式阅读该描述 出于项目所需的原因,我正在重新设计一个带有一些可自定义选项的宏对话框,包括编辑宏描述。因此,我有一个弹出窗口,用户可以在其中输入宏的宏描述,但是,我也希望能够读取描述,以便能够显示当前描述是什么(或者至少在用户更改描述后,当前描述变成了什么) nbayly引用了cpearsons站点,该站点提

我正在使用Excel for Mac 2011。使用
Application.MacroOptions(macroName,macroDesc)
以编程方式向宏添加描述非常容易。但是,如何以编程方式阅读该描述


出于项目所需的原因,我正在重新设计一个带有一些可自定义选项的宏对话框,包括编辑宏描述。因此,我有一个弹出窗口,用户可以在其中输入宏的宏描述,但是,我也希望能够读取描述,以便能够显示当前描述是什么(或者至少在用户更改描述后,当前描述变成了什么)

nbayly引用了cpearsons站点,该站点提供了可以访问VBA文本的代码。在生产excel工作簿中启用此类代码似乎有许多安全隐患

我有一个想法。也许你可以:

  • 使用工作簿中的代码创建一个隐藏的工作表,其中包含所有宏及其说明的列表。(然后禁用添加的代码和引用)

  • 创建新宏时,您的对话将添加到此列表中

  • 通过执行上述操作,您只需使用Application.MacroOptions(macroName,macroDesc)来编写说明,并且在工作表中保留一份副本,因此您无需阅读


    只是一个想法,有什么好处吗?

    阅读类似的过去请求和函数文档,似乎这是不可能的
    .MacroOptions
    作为方法列出,因此它不会返回任何输出。暗示了一个潜在的解决方法,但无法确认它是否满足您的需求。请注意,对于当前的描述,您不能只输出
    macroDesc
    ?findwindow,是的。但是,如果对话框打开(即使是一周后),我还需要能够显示用户将来定义的描述。所以本质上。。。有一个窗口显示当前描述,然后用户更改描述(使用旧描述更新文本框),最后,用户下次运行宏时,当前描述显示新更新的描述。根据nbayly的回复和那篇帖子,这看起来并不乐观。不过,我目前正在考虑是否可以注册一个注册中心。这是一个很好的建议,我没有高度重视诚实。我通常倾向于使用这种“廉价的解决方案”,但一开始我会避而不谈,因为考虑到宏位于.xlam文件(外接程序文件)中,我不确定自己能否做到这一点。然而,这是可能的,并且应该有效。不过,在我尝试之前,我想我应该更仔细地研究一下注册表,因为我越仔细地研究它们,它们似乎就能很好地完成这项工作(仅适用于本地机器)。1。当你说“我不确定你是否能做到”时,我想你指的是让cpearson代码正常工作?我对注册处知之甚少。这些是您所指的windows注册表吗?3.如果将工作簿复制到另一台计算机,打开工作簿是否会填充windows注册表?嗯,如果是这样的话,那听起来是个不错的方法。(隐藏的工作表将保存在xlam文件中)我要问:4。有多少个宏?5.手动创建隐藏工作表有多容易?)1。我指的是使用xlam文件的局限性(这我不太熟悉。2.像这样:3.我不确定,但我们使用的是共享服务器,所以这不重要。4.大约30-50,取决于使用的是哪个工作簿/加载项。5.令人讨厌的是,我会写一个脚本。我不是大师,但我创建了一点xlam文件。它们基本上就像工作簿,与我们所有人一样视觉对象(形状、色带等)。VBA需要小心地使用ThisWorkbook和ActiveWorkbook,因为这些对象为加载项的工作簿或用户的活动打开的工作簿提供句柄。从您的其他帖子中,我想您可能已经知道了这一点。以防万一。顺便说一句,我对这样使用注册表有一种不好的感觉,它可能很容易失控如果您在另一台机器上编辑工作簿等。