"When you host Visual Basic for Applications inside your application, you provide your customers with the full power of Microsoft Visual Basic. The key technology that makes individual Windows applications programmable and also makes it easy for your customers to create integrated solutions is the Component Object Model (COM) technology known as Automation (formerly called OLE Automation). Automation allows a developer to use VBA code to create and control software objects exposed by any application, dynamic-link library (DLL), or ActiveX® control that supports the appropriate programmatic interfaces."
"The Visual Basic editor provides you with the ability to create, modify, and debug code behind the application document. This integrated development environment exists outside the host application window, enabling developers to write code in VBA and simultaneously view the results of their programming in the host application. Although the Visual Basic editor exists outside the application window, it runs in the same memory space as its host, thereby benefiting from tight integration for event handling as well as enhanced performance."
- Microsoft Visual Basic for Applications 6.0 Software Development Kit Version 6.4/6.5 Welcome Guide
"Effective July 1, 2015, Microsoft will no longer be requiring payment or reporting of royalties for those customers with VBA and/or VSTA Licenses. "
- Summit Software Company, FAQ about VBA SDK Support, 2018, http://summsoft.com/faq-about-vba-sdk-support/
"Visual Basic for Applications, or VBA, is a distinct technology commonly used for application automation and macros inside of other applications, most commonly inside Microsoft Office applications. VBA ships as a part of Office and therefore the support for VBA is governed by the support policy of Office. However, there are situations where VBA is used to call or host Visual Basic 6.0 runtime binaries and controls. In these situations, Visual Basic 6.0 supported runtime files in the OS and the extended file list are also supported when used inside of a supported VBA environment.
For VB6 runtime scenarios to be supported inside VBA, all of the following must be true:
The final application host with intrinsic compile functions released by Microsoft is VB6 with VBA 6 embedded as the front end, however Visual Basic continued to be refined in this incarnation until 2007 with Visual Basic 6.5. In 2010 VBA 7 received 64-bit support, but no additional features were added. 2013-2016 use VBA 7.1 with very few changes overall.
The Visual Basic 6.5 IDE is written in VB6 along with the integration classes included with the VBA SDK. These classes have now been heavily modified to emulate VB6 features. VB65.exe acts as the host application, with VBA embedded inside of it. VB65 can create, open, edit, and save project files. It can also add/remove references and components. The intrinsic functions of VB65 automate the compile process to build executable files in native or p-code format, provided that a licensed copy of Visual Basic 6.0 is installed. The layout of the development environment and its features are nearly identical to that of VB6, except that the IDE has now been updated with modern icons and the newest features of VBA's IDE/VBE. For example, multiple projects can be opened and edited at the same time. Menu items can be dynamically customized by the developer with a lot of flexibility. Mouse-wheel and touch-pad input is automatically supported out-of-the-box. This newer IDE is now flexible enough to implement all sorts of updates, since we have direct access to the object model and the events of VBA's IDE/VBE. Installation of Microsoft Office is not required for the IDE to work, although it is recommended if you want to develop your own IDE. The VBA SDK's don't have a time limit imposed on the license for integrating, evaluating, and testing embedded VB projects. The applications that are ultimately created are made with a licenced copy of VB6 installed on the developer's machine.
In 2004, Microsoft advertised the ability to create your own customizable VB6.0 IDE with this SDK. It really is Visual Basic 6.5! In fact, there are hidden VB6 purposed menu items that are partially implemented in some cases, and disabled in other cases. It is unknown if these functions can be enabled, or utilized to some degree. In any case, we plan to build the intrinsic functions and features that are missing from VBA, to duplicate VB6 as close as possible. Then, we will add extensive customizations to the IDE and the compile process. At present, there are a few missing features that are still under construction.
VB6Namespaces are a group of classes written in VB6, to duplicate VB.NET functionality. They will become available as project templates. These private classes are nested so that the developer can call on them in the same way that they would in a VB.NET IDE. They are similar to VB.NET Namespaces, but there isn't a need to referecne a DLL. At compile time, any unused (not instantiated) classes are to be excluded from the being compiled into the executable. In fact, this is what the new IDE was developed to handle automatically when the build process starts. Developers can get a fair portion of VB.NET code to compile in a VB6.x IDE, since many of the common Namespaces have duplicate classes visible within the scope of the project template chosen.
Visual Basic 6.5 BETA preview