Purchasing VBA Programming for Microsoft Office Applications


It's unfortunate that I must provide this information, but want to protect buyers from selfish or unethical programmers. Here's a few guidelines on purchasing programming for a resellable application, for personal or inter-company use, and how to choose the right application for your project.

For Resale

If you are creating a product that you plan to sell, don't bother having it developed in the Microsoft Office application, or do so knowing that your ultimate plan will be to have it developed using Visual Basic (not VBA). COM add-ins are one way to make an application more secure. An add-in works with the application to provide additional features. However, if you create, for instance, a entire Excel workbook that provides cool reports for stock market data or something like that, then have it developed in VB. Quite simply, you cannot secure a Microsoft Office application or keep anyone from copying it from machine to machine.

If you choose to have a Visual Basic stand-alone application developed, then what you should ensure you are buying is the application and the source code. Do not make final payment until you have received the source code, or you have the working application and have been promised the source code upon final payment.

If you have found a developer that is agreeable to all the above, you may be able to pay a reduced fee or even no fee by agreeing to share the profits with the developer.

For Personal/Company Use

I have just read a post where someone is asking how they can restrict access to their VBA code so their client cannot access it. I refused to answer and told them why. If you are buying VBA code-automation, macros, call it what you will-then you should certainly have access to it. Your programmer may wish to protect the code until you've paid the bill, but you should certainly have access to your code once the job is finalized. Why? Well, what happens if you hire someone next year to enhance the features in the project? Should you have to make them rewrite all that code? NO! You have paid for that code. Not only should you have access to it, but it should be heavily commented so that any programmer can understand what it's doing.

Which Application to Use

Here are some bad reasons for choosing an application when you are paying to have it developed for you:

  • I'm better with Word than Excel (A good application developer will make the application so easy to use, it requires little or no application skills.)
  • I don't know Access (You don't need to know Access to use an Access database. Do you think all the cashiers at Sears know how to build a database?)
  • But I did so much work in Excel! (So you should spend more time, effort, and money to make it work there? Not if it's not the right application, you shouldn't.)
  • The users don't have Access installed (The price of installing Access would probably be far less than the cost of the inefficiency of using Excel when Access ought to be used.)
  • The company won't let us run macros (This is the most incredibly stupid thing I've ever heard of. If your company doesn't let you run macros, quit now!)

Word or Excel?

  • Use Word when you have few or no calculations. (Yes, Word can perform calculations, but they can become cumbersome, and it's not quite as flexible as Excel.)
  • Use Word when you have lots of text. (Excel doesn't always nicely handle large amounts of text in cells.)
  • If you have lots of records and lots of text, consider mail merge. (Just because Excel won't give you a two-column layout is no reason to use Word. You can store your data in Excel, and do a mail merge to get the desired layout.)
  • If you have lots of calculations, but need to produce few documents per session, then consider what we call Push Merge.

Excel or Access?

Too many people program Excel applications instead of moving to Access when they should. And they go to an Excel developer for more work. If the Excel developer doesn't also develop Access applications, he'd be shooting himself in the foot by telling you it ought to be in Access.

  • Use Access when you want your data easily reported in many ways.
  • Use Access when you find yourself duplicating data into other worksheets or workbooks.
  • Use Access when you want a history of data, and you want to be able to report that history.