We have a PC, running an Operating System, maybe Windows XP, with a desktop and office suite of applications (maybe Microsoft Office) to present and refine our data. We also possibly have other applications like SAS for desktop data analysis and insight, and a mainframe emulation tool, like Attachmate Extra! which links us to a huge data source on a mainframe or unix box. The best interface for linking all of the systems together is Visual Basic for Applications (VBA).
VBA is a programming language stemming from the early versions of BASIC (Beginners All-Purpose Symbolic Instructional Language), which was intended for novice programmers, and to assist in teaching computer programming in schools. Basic grew whilst operating systems and other packages became more advanced, and when operating systems provided more and more tools to enhance presentation, Visual Basic was created. Operating systems grew further, with the creation of new concepts such as ODBC (Open Database Connectivity) which allowed databases to be easily connected between systems, and OLE (Object Linked Embedding) which allows one package to communicate and control another easily.
Microsoft adopted these concepts and created Visual Basic for Applications.
Like SAS, VBA is an interpretive language meaning that it is not (generally) converted into a stream of executable instructions which may be independently saved and immediately used on any other computer, but it must have an execution environment surrounding it. Very conveniently Microsoft, and many other software vendors added a development interface behind their core products allowing VBA programs to be added to control the package itself, and potentially control other packages at the same time. Additionally, most of those systems allow macros to be recorded, copying the actions carried out by the user, and converting those actions into VBA. This macro can the be repeated as often as the user likes, and can conveniently be added to toolbar options as the package itself is tailored through the use of VBA.
This is particularly true with Add-Ins which can be defined as a standard macro, and then be saved as an add-in which sits behind the package itself, being made available to any document, or data opened by the package in which they're built.
Add-Innovation specialises in using add-ins to customise desktop packages in order to link them together and hence improve their functionality and enhance your productivity adding innovation to the way your company works. Many examples of add-ins for Microsoft Excel can be found here, extending Excel's capabilities and fixing some problems which may result from the use of Excel functions.
A prime example of how Add-Innovation opens your productivity and an example of the use of VBA to control applications is in creating a macro to Edit mainframe SAS datasets in MS/Excel through Attachmate Extra. More examples of add-ins and the use of VBA can be found throughout this site.