Featured post

Fixed Income Trading: New venues

A simple question came up recently in a conversation – how many new Fixed Income trading venues are there?  I could not think of anywhere th...

Saturday, 4 April 2015

Excel VBA - industrialisation...Part Ten "Enumerating COMAddins"

This post is concerned with looking at COM Addins.  The COM Addin is part of the Office Object Model rather than Excel and was part of a Microsoft process to try and unify the different implementations of VBA.

COM Addins can, as the name suggests, be created in any language that supports COM.  In the past I have done so in VB6 which was very easy.  The move to dot net meant that there was a need for more code to get from the COM world to the CLR. And the process of deploying VB6 based COM Addins in Excel 2013 has been further complicated by Microsoft removing some components needed at run time.
Following on from the earlier posts on enumerations "Enumerating DDE Servers", "Enumerating RTD Servers", "Enumerate Addin references"
As we have seen within the Enumerating RTD Servers post, from a ProgID we can find the actual code that is executed, so that is not shown in the VBA code in this example. And of course, from a GUID of a COM object it's trivially simple to find the code.
To enumerate all of the COMAddins in a particular instance of Excel, follow these steps:
  1. Download the code from github
  2. Create a new Excel workbook with one worksheet.
  3. Save the new workbook as an xlsm format workbook
  4. Enter the VBA editor
  5. Import the module you just downloaded from github
  6. Execute the "EntryPointGetCOMAddinReferences" method and look in the debug window
See also
Excel industrialisation...Part One "Code to write code"    
Excel industrialisation...Part Two "Export VBA code to file system"
Excel industrialisation...Part Three "What is Excel Industrialisation?"
Excel industrialisation...Part Four "Enumerate Addin references"
Excel industrialisation...Part Five "Integration with Git"
Excel industrialisation...Part Six "Error Handling"
Excel industrialisation...Part Seven "Central Error Reporting"
Excel industrialisation...Part Eight "Enumerating RTD Servers"
Excel industrialisation...Part Nine "Enumerating DDE Servers"  
Excel industrialisation...Part Ten "Enumerating COMAddins"  

No comments:

Post a Comment