C # – Classe non enregistrée – création d'une feuille de calcul Excel avec des macros utilisant VBIDE

En utilisant VS2010, je ne peux pas utiliser la DLL d'interopérabilité VBIDE. Est-ce que quelqu'un pourrait voir s'ils peuvent se reproduire sur leur PC? Code directement de http://support.microsoft.com/kb/303872

  1. Créez une application winform en C #.

  2. Référencez ces 2 DLL: C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Vbe.Interop.dll et C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll

  3. Dans Form_load, met ce code:


 //Using statments using Excel = Microsoft.Office.Interop.Excel;  using VBIDE = Microsoft.Vbe.Interop; using System.Reflection; Excel.Application excelApp = null; Excel._Workbook excelWorkbook; Excel._Worksheet excelSheet; excelApp = new Excel.Application(); excelApp.Visible = true; excelWorkbook = (Excel._Workbook)(excelApp.Workbooks.Add(Missing.Value)); excelSheet = (Excel._Worksheet)excelWorkbook.ActiveSheet; VBIDE.VBComponent oModule = new VBIDE.VBComponent(); //<--BAM throws an error 

La récupération de l'usine de class COM pour le composant avec CLSID {BE39F3DA-1B13-11D0-887F-00A0C90F2744} a échoué en raison de l'erreur suivante: 80040154 Classe non enregistrée (Exception de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Code de fonctionnement:

 VBIDE.VBComponent oModule; oModule = excelWorkbook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);