Visual Basic for Applications Frequently Asked Questions

Q. What is Visual Basic for Applications?

A. Microsoft Visual Basic for Applications (VBA) is an embeddable programming environment designed to enable developers to build custom solutions using the full power of Microsoft Visual Basic. Developers using applications that host VBA can automate and extend the application functionality, shortening the development cycle of custom business solutions.

Q. What is the VBA Software Development Kit?

A. The VBA software development kit (SDK) contains documentation and tools for hosting VBA - everything needed to evaluate VBA in your application. Using the SDK, developers can easily integrate VBA into their software for evaluation purposes. The SDK is not necessary to develop solutions using VBA hosted by an application such as Microsoft Office, because Microsoft Office already includes VBA.

Q. What elements of Visual Basic for Applications are being licensed?

A. Licensees of Visual Basic for Applications embed the VBA integrated development environment (IDE), the VBA language engine, Microsoft Forms, IntelliSense technology productivity features, and development tools (including a debugger, an object browser, and a code editor). In addition, licensees can take advantage of the multithreading capabilities of VBA, as well as support for digital signatures.

Q. What are the differences between Visual Basic, VBA, and VBScript? When would I use one over another?

A. Visual Basic is a stand-alone tool for creating separate software components, such as executable programs, COM components and ActiveX Controls, and is useful when you must build a specialized solution from scratch.

VBA offers the same powerful tools as Visual Basic in the context of an existing application, and is the best option for customizing software that already meets most of your needs.

VBScript is a lightweight version of the Visual Basic language, and is designed specifically for use on Web pages. While scripting can sometimes be used for simple automation, VBA is the premier technology designed specifically for application automation. Unlike VBA, VBScript does not have an IDE.

Q. Is VBScript compatible with Visual Basic for Applications and Visual Basic?

A. Yes. VBScript is upwardly compatible with Visual Basic for Applications and Visual Basic.

Q. Which Microsoft applications include Visual Basic for Applications?

A. Visual Basic for Applications 6.5 is a core component in Microsoft Office 2007, and is integrated into Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint, and Microsoft Word.

Q. Which companies have licensed Visual Basic for Applications?

A. A list of companies who have announced that they are licensing Visual Basic for Applications can be found here.

Q. For what platforms is Visual Basic for Applications available?

A. Visual Basic for Applications 6.5 is available for the Microsoft Windows Server 2003, Windows XP, and Windows Vista operating systems on 32-bit Intel platforms.

Q. Does VBA include any security features?

A. Yes. Visual Basic for Applications includes the ability to prevent users from viewing or modifying code. Developers can password-protect their VBA code so it is encrypted and cannot be viewed. Digital signatures offer an additional layer of security on top of code protection. By combining digital signatures with security levels, users can identify the source of VBA code and make informed decisions about whether to trust it.

Q. What are COM add-ins?

A. COM add-ins are stand-alone software components that are integrated into an application to add features to the program. They use a common integration architecture that provides a consistent model across multiple applications. All Microsoft Office 2007 applications support COM add-ins.

Q. How does Visual Basic for Applications relate to Microsoft Office?

A. Via integration in Microsoft Office, Visual Basic for Applications is a key part of Microsoft's strategy to enable customers to use desktop applications as "construction sites" for creating customized business solutions.

Q. My department uses both Visual C++ and Visual Basic for development. Which is better for integrating VBA?

A. The Microsoft Application Programmability Component (APC), included in VBA, greatly simplifies VBA integration into both Microsoft Visual C++ and Microsoft Visual Basic applications. The choice of which language to employ depends on the requirements and design goals of your business application. Because VBA integrates with both technologies, you can concentrate on making technology decisions based on business requirements.

Q. What advantage do VBA multithreaded projects have over Visual Basic or Visual C++?

A. VBA multithreaded projects provide tighter integration with a host application. This makes it easier for a developer to write VBA code that responds to application events and that interacts with the host application.

Q. What elements of Visual Basic for Applications are being licensed?

A. Licensees get the exact same Visual Basic for Applications environment that is part of Microsoft Office. This environment includes the Visual Basic for Applications language engine, the Microsoft Forms design tools, IntelliSense productivity features, and development tools (debugger, object browser, editor).