我已经编写了一个vba模块,可以为excel安装一个addin按钮。我想尽可能简单地在许多计算机上部署它。目前,这些是我的步骤。
有没有办法自动化这个过程?用vb写一些东西?
答案 0 :(得分:4)
您可以使用Advanced Installer(the free edition)等工具构建exe或msi安装程序。您可以做的一件事是将文件复制到特定位置,如果将其放在XLSTART文件夹中,则在启动Excel时该加载项将自动加载给用户。 Excel程序文件目录中有一个免费文件夹,通常是这样的
C:\ Program Files(x86)\ Microsoft Office \ Office15 \ XLSTART
如果你将xlam文件放入该文件夹,它们也会默认加载。用户特定选项是
C:\用户[用户名] \应用程序数据\漫游\微软\ EXCEL \ XLSTART
两种型号都有PROS / CONS。一个是所有用户都可以访问,或者只是安装的用户。用户特定选项的好处是它需要有限的安装权限(无管理员权限)
答案 1 :(得分:2)
正如其他人所说,您可以轻松地将文件复制到每个用户Apps目录中的所需文件夹中。然后,他们需要选中加载项菜单中的框,但至少文件将在那里。我通过将加载项和.bat文件放在每个人都可以访问的共享驱动器上来成功地使用它。然后,您可以只提供.bat文件的链接,该文件将文件从共享驱动器复制到其Apps目录中的个人计算机。这是我使用的示例.bat:
xcopy "\\server\share\folder\Addins\CRWScleanup.xlam" "%APPDATA%\Microsoft\AddIns\" /y
最初我设置了.bat文件以检测和处理Win7和WinXP,因为我们有混合工作,但后来我意识到%APPDATA%之后的文件夹位置(这导致XP与Win7的不同位置)对于每个版本的Windows都是相同的。即\ Microsoft \ AddIns \%APPDATA%是一个全局Windows变量,其值将因每个用户而异(这很好)。
安装外接程序后,它的工作非常出色,因为要更新它,我只需将新版本放在共享驱动器上,并让用户在Excel关闭时单击指向.bat的链接。新版本将被复制,用户无需执行任何操作。
答案 2 :(得分:1)
使用VBA,您必须依赖Office文件(在本例中为Excel文件),并且无法移动到可执行文件/安装包。您可以创建一个程序(或宏)以自动方式执行所需的步骤。但是,如果您想要的是依赖于用户可能执行的标准安装包(通常在安装程序时),则必须转到VB.NET。
VB.NET和VBA并没有太大不同(嗯......实际上,VB.NET包含了很多东西,但“理解”了大部分的VBA代码)而VB.NET对程序员来说非常友好;所以从VBA到VB.NET的转换不会花费太长时间。在VB.NET中,您可以使用不同的方式与Excel交互;从您的问题,我知道您需要加载项替代方案:它生成一个自定义的“安装包”,一旦单击,将安装目标计算机中的给出Excel加载项。依赖此选项很简单:在Visual Studio中(您需要使用VS来使用VB.NET),打开“新建项目”,然后在Visual Basic模板中选择Office(,您的版本)和Excel加载项。
注意:useful link提供了我的Mehow:它指的是一个旧的VS(2008),但从那时起事情没有太大变化。
注2:自2008年起,任何收费的VS版本都可以使用上述建议。不确定免费版本(快速版)的支持。
答案 3 :(得分:0)
最简单的方法是在打开时向xlsm
文件添加一些安装代码
然后,此代码可以执行以下操作:
xlam
到加载项文件夹; xlsm
文件。然后,您需要做的只是通过电子邮件发送xlsm
文件,然后让人们打开它。
代码非常简单,但我可以根据需要显示。
答案 4 :(得分:0)
我研究了很多上述方法以及其他站点上的方法,但是设法使用Excel加载项(* .xlam)自己创建了自己的安装和卸载程序。现在,我的加载项是第一次自行安装,我也有一个卸载脚本。奇迹般有效。
我使用了自己对Ivan解决方案的改进和衍生”:https://grishagin.com/vba/2017/01/11/automatic-excel-addin-installation.html