DistributingOriginalsExcel-based applications are usually extremely easy to distributejust zip up the files and e-mail them to the users. There are no runtimes that must be installed before our application (other than Excel itself, of course), so the user can just unzip and go.Some companies prefer to administer the installation of applications centrally, rolling them out during the user's login scripts. For that case, we will need to create a proper installation package that will install our application without displaying any prompts (such as asking for file locations). UpdatesWhen distributing updates, we need to take a little more care to preserve our users' data and application settings. If we have followed the advice to always physically separate the code from the data, the only thing we need to be careful about is to not overwrite the users' data files with the empty templates we might include. If we didn't follow the advice to separate data from code, this is the time that we realize why we should have!We should never distribute patches that attempt to modify the VBA code contained within another workbook. For us to be able to modify the code, the user must have ticked the Trust Access to Visual Basic Project box in the Tools > Macro > Security dialog, the project cannot be protected and saving the modified project will remove any digital signature we've applied. If the split between data and code has been planned in advance, we will always be able to simply overwrite files with the new versions. Phone HomeIf we have included a front-loader workbook or VB6 exe to start our application, we could include "phone home" distribution of updates. Every time the application starts, it connects to a central Web site (or Web service) to see whether any of the application files have been updated. If they have, the new files are downloaded, then opened and run. This mechanism is built in to the Visual Studio Tools for Office (see Chapter 22 Using VB.NET and the Visual Studio Tools for Office), but can easily be built in to a front-loader workbook by using a Web service to check for updates (see Chapter 23 Excel, XML and Web Services), then using Workbooks.Open and Workbook.SaveAs to open the new file from the server and save it to the local machine. |