emp*_*ket 2 excel vba ribbon excel-addins server
我已经上网几个月了,但还没有真正找到我想要执行的以下任务的解决方案。这是一笔交易。
我正在用 VBA 编写一堆代码,这基本上是在工作簿中创建一个新的工作表,其中包含用于工作目的的特定类型的计算器(有很多)。一张纸 - 一种类型的计算器/分析。
我想要完成的是,由于代码量不断增加 - 我想将所有内容都放在功能区上,这样我就可以通过它访问宏。然而,这项工作是建立在具体情况分析的基础上的,所以每个新项目都需要创建一个新的 Excel 工作簿,我可以在其中选择我想要的计算器并完成工作。
除此之外,它需要在网络中所有装有 Excel 的计算机上启动,以便我能够修改/添加宏代码,以便所有 PC 都可以同时保持最新状态。
简单总结一下:
那么,有没有什么解决方案,例如 - 我创建 2 个文件(一个带有功能区配置,另一个带有计算器)并将它们放入服务器文件夹中?每个用户在安装过程中访问它们一次(基本上是找到插件所在的文件夹),如果我需要修改某些内容 - 我会使用服务器文件夹中的这两个文件进行修改,仅此而已。
如果即时更新所有用户不是真实的或相当困难(对于非程序员而言),则可以进行手动更新,但至少必须能够访问每个新工作簿中的功能区。
预先感谢您的帮助。
感谢所有对这个问题做出贡献的人。想总结一下经验并提供我设法做到的方式。
1)获取您的VBA代码
让我们有一个这样的代码。它可以是任何你想要的。为此,请在Developers选项卡中打开 VBA 或按Alt+F11。创建一个新的模块,右键单击,在窗口中VBAProject > Insert > Module命名并输入以下代码:sayMsgProperties
Sub saySomething()
MsgBox "What's up?"
End Sub
Run Code Online (Sandbox Code Playgroud)
正如我上面所说 - 这个模块可以包含任何东西,通常是代码的功能部分,稍后将在另一个模块中调用。
让我们像创建第一个模块一样创建一个新模块并将其命名为sayRibbon。这个单独的模块包含一个调用函数或所谓的“按钮”,它从sayMsg模块运行我们的子例程。Copy > Paste下面的代码:
Private Sub sayButtons(Control As IRibbonControl)
Select Case Control.ID
Case Is = "saySomething_Btn"
Call saySomething
Case Else
End Select
End Sub
Run Code Online (Sandbox Code Playgroud)
基本上,我们这里有一个Case命名的saySomething_Btn,它是“按钮”本身,及其定义的调用函数。
现在save它作为 Excel 插件文件.xlam和close程序。
注意:当您.xlam从下拉菜单中进行选择时,您将自动位于默认Microsoft > AddIns文件夹中。为了将其保存在您的 中Desktop,首先选择文件类型,然后重新定位文件夹。
2) Office RibbonX Editor的 XML 映射
上面的实用程序为您提供了在 Excel 功能区中创建自定义选项卡的选项。点击链接进行下载。所有安装和使用说明也可通过该链接获取。
OfficeRibbonXEditor.exe文件。File > Open你的.xlam文件。现在它出现在下面的列表中。Right click > Insert Office 2010+ CustomUI Part(或Insert Office 2007 CustomUI Part- 取决于您正在运行的 Office 版本)。Copy > Paste下面的代码:代码
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" xmlns:Q="sayRibbon">
<ribbon startFromScratch="false">
<tabs>
<tab idQ = "Q:rxTabUI" label="Say Something" insertAfterMso="TabView">
<group idQ="Q:rxGrpUI" label="Say">
<button id="saySomething_Btn" label="Say Something" onAction="sayButtons" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)
Validate如果出现问题,请按,将显示错误消息(如果需要,请进行调试,但在这种情况下不应该进行调试)。Save是Close功能区编辑器。.xlam仅当Excel 未打开时才可以保存。3) 访问任何工作簿中的 .xlam 加载项
这种方法的主要目的是提供从 Excel 中的任何工作簿以及公司网络中的任何计算机对 VBA 代码的轻松访问,而无需在每台单独的计算机上实际安装它。
这并不重要 - 您只想在您的 PC 还是本地网络上进行访问,安装过程是相同的。
.xlam到您选择的任何位置(本地文件夹或服务器)。Excel > File > Options > Add-Ins。Go...下面的按钮,Browse找到.xlam位置,然后按OK。OK。注意:出于安全原因,我建议encrypt your VBA您这样做,以防万一您想成为真正可以编辑代码的人,以消除 VBA 代码未加密时可能出现的任何问题。
我检查了我公司网络的性能,结果非常令人满意。您在代码中执行的所有更改都会在所有用户重新启动 Excel 应用程序后立即更新。
不要忘记发布变更说明,并至少保留几个旧版本供人们使用,以备需要或紧急情况使用。
只要项目不断发展,也许可以使用更复杂的方法,但是由于我目前面临的边界,这种方法提供了目前最好的性能。