How to upgrade Visual Basic 6
to Visual Basic 6.5
with VBA's SDK
+ VB.NET

- Open source and free -

- Windows 7, 10 compatible -

How to upgrade Visual Basic 6
to Visual Basic 6.5
with VBA's SDK
+ VB.NET

- Open source and free -

- Windows 7, 10 compatible -

Project details - Early BETA on 12/31/18

image50

Benefits of Visual Basic for Applications (VBA)

 "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."

image51

The Visual Basic Editor (VBE)

"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 host OS version for VB runtime is still supported.
  • The host version of Office for VBA is still supported.
  • The runtime files in question are still supported."

- Support statement for Visual Basic on Windows, 1/17/18


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. 

image52

Visual Basic 6.5 IDE (VB65 - coming in 2019)

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.

image53

Visual Basic 6.5 IDE (To-Do)

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.  

  • Support for VB.NET controls will be implemented soon! Developers will be able to add .NET components to the toolbox, so that they can be inserted onto a VB6 form, including seamless interop access to the control's event handlers.
  • Work is also being done to support some of the additional VB6 file formats that are missing from VBA, i.e. ctl, pag, and res.  An upgrade conversion is recommended for UserControls, to take advantage of the richer .NET versions and the new Threading Model.  A VB6 UserControl and a VB6 ActiveX Control is now equivalent to a .NET UserControl.  A VB6 ActiveX DLL is equivalent to a .NET Class Library .  A VB6 UserControl used in Web applications is equivalent to a .NET Web Control Library.
  • Full class properties are not available in VBA, so those VB6 code module properties will have to be handled by the host application. At present, a default header is written to the class files and other types of code modules.
  • The component dialog window is not currently saving the selected components.  For now, simply click the "Additional Controls" menu item to add components to the toolbox.  Or, right-click the toolbox itself to change components.

image54

VB6Namespaces (Optional VB6 - prototype)

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.

Video

Visual Basic 6.5 BETA preview

Downloads

  • VBA SDK 6.5 Parts 1-5 (licensed for Integrating, evaluating, and testing - Select all zip files, right click and extract with WinRAR installed)  

  • VB65 IDE (open source - requiring installation of SDK and VB6 - The host must be "Run As Administrator" in restricted paths)

  • VB6 Namespaces (written in VB6 - Optional)

Future options

image55

  • Support for VB.NET controls is coming soon!  Simply, add controls to the toolbox and then drop them onto a form to use them as normal
  • Automatic "Pretty listing (reformatting)" will be a great time saving feature similar to VB.NET
  • Automatic removal of un-instantiated classes before making a compiled executable file
  • Support for some VB.NET keywords and features to compile to native code or p-code
  • A secure desktop environment will strengthen the security and integrity of the development process and the applications made within it