Skip to content

VB, VBA, VBE and COM References

Tom edited this page Nov 20, 2022 · 2 revisions

This page features a list of useful references regarding the VBA programming language and how it gets interpreted by the VBE. Moreover, this is the home of several references regarding COM. For books on these topics, see Books on VBA and the VBE.

VBA

VBA Language Specification

The VBA language Specification (PDF) from Microsoft.

Office VBA File Format Structure

The Office VBA File Format Structure (PDF) from Microsoft.

Articles by Tony Jollans (former Word MVP) on VBA storage and decompression

Structured Storage and part 2 and Stream Decompression.

P-Code, ExCode and VBA

A nice overview in PCodeDmp's ReadMe.md file that describes the p-code storage and decoding of a module.

VBA SDK / APC

Integrating VBA into your application

A Tech Ed 2000 presentation giving an overview of the VBA SDK and APC.

Office VBA

Offline Office VBA Help Files

Help (.chm) files for Access, Excel, PowerPoint and Word are available from the OfficeDev GitHub account

Microsoft OfficeDev VBA Content

The official GitHub repo for all Office VBA documentation

The Component Object Model (COM) and Type Libraries

Online COM Guide

docs.microsoft.com has a handy guide that covers several stuff about COM and extra you wish you didn't know. In case the URL doesn't work, here's the (Wayback machine URL)

The Component Object Model Specification

Long since taken down by Microsoft, a cached copy of The Component Object Model Specification can be found here (Wayback machine URL)

Visual Basic: Inspect COM Components Using the TypeLib Information Object Library

An archived MSDN article from December 2000 on using TlbInf32.dll to inspect a Type Library.

Articles on COM and OLE Controls by Sean Baxter

An archive of enlightening and entertaining articles about the innards of COM and OLE. Full listing here:

Articles on COM by Michael Dunn

Implementing indirect method and property calls on ActiveX/COM objects by Dan Appleman

A nicely written article by VB and Win32 author Daniel Appleman with an overview of calling members through IDispatch.

VBForums - threads on IDispatch and memory layouts of VB class instances

Two related posts on VBForums.com, with great detail on the memory layout of interfaces and VB object instances, and how to call hidden members of such objects. [VB6] Call Functions By Pointer (Universall DLL Calls) by LaVolpe, and VB6 LightWeight COM and vbFriendly-BaseInterfaces by Schmidt.

The Object that came in from the Code by Dan Appleman

An amusing article about controls, sub-objects and implementing IPersistStream and IPersistPropertyBag, by VB and Win32 author Daniel Appleman.

The Unofficial TypeLib Format Specification by Theircorp

The The Unofficial TypeLib Format Specification is available for download from TheirCorp

Inside COM+: Base Services by Guy Eddon and Henry Eddon

This is available in an HTML edition at this link.

VBA Project and Legacy Office File Format: OLE Structured Storage / Compound Binary File Format

See the first 2 articles by Tony Jollans referred to earlier in this document.

[MS-CFB]: Compound File Binary File Format

Microsoft's official documentation for the Compound Binary File Format

The Microsoft Compound Document File Format by OpenOffice.org

An nice overview of structured storage (PDF), written more clearly than the official Microsoft documentation, and with examples.

Persistence of Data Whitepaper by Dan Appleman

An overview whitepaper on persistence/serialization formats, with an emphasis on OLE Structured Storage, by Dan Appleman

Classic COM and .NET interop comparison

Provides a detailed explanation on how things are done in classic COM and then show how it is done in the interop for .NET.

WordBasic

The WordBasic Help file

The WordBasic Help file hosted by WordMVP.com contains details on arguments for various Word dialogs when using VBA, that are missing from newer VBA documentation.

Clone this wiki locally