使用单元格内容作为参数从 Excel 2007/2010 上下文菜单启动可执行文件

使用单元格内容作为参数从 Excel 2007/2010 上下文菜单启动可执行文件

对于 Excel 2007 和 2010。我想右键单击某个单元格,并将其中一个选项设为“运行 Slump”。当用户选择该选项时,它将启动可执行文件:

     \\servername\path\slump.exe 12345

其中 12345 是右键单击的单元格的内容。有人可以概述如何将其添加到上下文菜单并将单元格的内容传递给启动项目的 VBA,以及用户在作为管理员的计算机上将功能添加到 excel 副本的最佳方法是什么。

编辑:如果它对决定如何部署它有影响——我应该提到可能会有 7 或 8 个人使用它。我们都在同一家公司工作。我认为我们没有签署宏的证书。我们可能想要为不同的项目安装和卸载一堆类似的东西。

答案1

如果仅在一个工作簿中需要该功能,则只需将宏添加到该工作簿并将其保存为 xslm 即可。这将是最简单的。

但是如果多个工作簿都需要该功能,那么您可能需要将其作为插件(可以加载到任何人的 Excel 副本中的代码)或共享宏,具体取决于您的需要。

代码很简单,当启用宏的工作簿(或插件)加载时,在上下文菜单(右键菜单)中添加一个条目:

Private Sub Workbook_Open()
With Application.CommandBars("Cell")
    With .Controls.Add(Type:=msoControlButton)
        .BeginGroup = True
        .Caption = "Run Slump"
        .OnAction = "doTheSlump"
    End With
End With
End Sub

每当工作簿关闭(或停用)时,删除上下文菜单:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  With Application.CommandBars("Cell")
    .Controls("Run Slump").Delete
  End With
End Sub

代码确实运行,应该在 vba 模块中。在此示例中,它将使用单元格的内容作为文件路径打开笔记本:

Sub doTheSlump()
retval = Shell("C:\WINDOWS\notepad.exe " + Selection.Value, 1)
End Sub

相关内容