你如何把一个VBA插件,并作出安装程序?

我已经写了一个VBA模块,安装一个插件button,以Excel。 我想尽可能简单地将其部署在许多计算机上。 目前,这些是我的步骤。

  1. 将excel保存为* .xlsm
  2. 在我想要安装的计算机上打开文档
  3. 将文档另存为扩展名(* .xlam),将其放入插件文件夹中
  4. 转到选项>加载项>pipe理/转到>
  5. 点击我的joincheckbox

有没有办法使这个过程自动化? 用vb写一些东西?

您可以使用Advanced Installer( 免费版 )等工具构buildexe或msi安装程序。 你可以做的一件事是将文件复制到一个特定的位置,如果你把它放在XLSTART文件夹中,那么启动Excel时,该加载项将自动加载给用户。 Excel程序文件目录中有一个免费的文件夹,通常是这样的

C:\ Program Files(x86)\ Microsoft Office \ Office15 \ XLSTART

如果您将xlam文件放入该文件夹,则默认也会加载。 用户特定的选项是

C:\用户[名] \ AppData \漫游\微软\ EXCEL \ XLSTART

两种型号都有PROS / CONS。 一个是所有用户都可以访问,或者只是安装的用户。 用户专用选项的好处是它需要有限的安装权限(没有pipe理权限)

使用VBA时,您必须依赖Office文件(在本例中为Excel文件),并且不能移动到可执行文件/安装包。 您可以创build一个程序(或一个macros),以自动方式执行所需的步骤。 但是,如果你想要的是依赖于一个标准的安装包,用户可能会执行(像往常一样,安装程序时),你将不得不移动到VB.NET。

VB.NET和VBA不太一样(其实,VB.NET包含了很多东西,但“了解”大部分的VBA代码)和VB.NET相当程序友好; 所以从VBA到VB.NET的转换不会花太多时间。 在VB.NET中,你有不同的方式与Excel交互; 从你的问题,我明白,你需要加载项的替代scheme:它会生成一个自定义的“安装包”,一旦点击,将安装给目标计算机的Excel加载项。 依靠这个选项很简单:在你的Visual Studio中(你需要一个VS来处理VB.NET),打开“New Project”,在Visual Basic模板中selectOffice(你的版本)和Excel Add-in。

注: 有用的链接提供了我的Mehow:它是指一个旧的VS(2008),但事情并没有太大的变化。

注2:自2008年以来,上述build议可在任何收费的VS版本中使用。 不知道在免费版本(Express的)的支持。

正如其他人所说,您可以轻松地将文件复制到每个用户的Apps目录中所需的文件夹。 然后,他们需要检查加载项菜单中的框,但至less该文件将在那里。 我通过将加载项和.bat文件放在每个人都可以访问的共享驱动器上,在工作中取得了一些成功。 然后,您可以提供一个.bat文件的链接,该文件将把文件从共享驱动器复制到其电子邮件目录中的个人计算机。 这里是我使用的一个例子.bat:

xcopy "\\server\share\folder\Addins\CRWScleanup.xlam" "%APPDATA%\Microsoft\AddIns\" /y 

最初,我有.bat文件设置来检测和处理Win7和WinXP,因为我们有一个混合工作,但后来我意识到%APPDATA%(这导致了XP与Win7不同的地方)的文件夹位置是相同的为每个版本的Windows。 ie \ Microsoft \ AddIns \%APPDATA%是一个全局的Windowsvariables,它的值会因用户的不同而不同(这很好)。

一旦安装了插件,它就会出色地工作,因为要更新它,我所要做的就是将新版本放在共享驱动器上,并让用户在Excelclosures时单击.bat链接。 新版本被复制,用户不必做任何事情。