就VBA代码开发而言,这取决于我从事的工作。在Access中,我会将所有VBA作为Access前端exe文件的一部分。但是,对于任何其他程序(Excel、Autocad等),我设置了一个标准模块,该模块具有在程序打开时加载vba模块的功能。这样,无论程序何时运行,他们都使用最新版本的代码,而不必在我每次更新时发布更改。只需更新一个文件,所有更新就会自动分发。
例如,我创建了许多Excel UDF。所以,我创建了一个Excel插件,基本上相当于自举代码(和计算机BIOS的想法一样)。外接程序中的代码从不更改。
在ThisWorkbook部分中:
- Private Sub app_WorkbookActivate(ByVal Wb As Workbook)
- 'Register the Macros
- Debug.Print "Registering Macros"
- Call RegisterMacros
- End Sub
- Private Sub Workbook_Open()
- On Error Resume Next
- 'Remove Functions
- Set mf = Application.VBE.VBProjects("FunctionsProject").VBComponents.Item("Functions")
- Application.VBE.VBProjects("FunctionsProject").VBComponents.Item("Functions").Name = "FunctionsRemove"
- Application.VBE.VBProjects("FunctionsProject").VBComponents.Remove mf
- 'Add Functions from network
- Application.VBE.VBProjects("FunctionsProject").VBComponents.Import "\\m-storage\shared\ExcelFunctions\Functions.bas"
- End Sub
每次打开Excel时,该代码都会导入Functions.bas(模块),以确保每个人都使用最新的代码。将引导代码保存在外接程序中使最终用户更容易添加到Excel中。 |