/ / C # - Клас не зареєстрований - створення таблиці Excel з макросами за допомогою VBIDE - c #, .net, excel, vba, interop

C # - клас не зареєстрований - створення таблиці Excel з макросами за допомогою VBIDE - c #, .net, excel, vba, interop

Використовуючи VS2010, я не можу використовувати VBIDE interop DLL. Чи може хто-небудь, будь ласка, подивіться, чи зможе він відтворити на своєму комп'ютері - кодом прямо з http://support.microsoft.com/kb/303872

  1. Створити додаток winform в C #.

  2. Посилання на ці 2 бібліотеки DLL: C:Program FilesMicrosoft Visual Studio 10.0Visual Studio Tools for OfficePIAOffice14Microsoft.Vbe.Interop.dll і C:Program FilesMicrosoft Visual Studio 10.0Visual Studio Tools for OfficePIAOffice14Microsoft.Office.Interop.Excel.dll

  3. У Form_load поставте цей код:


//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

Отримання заводського компонента COM-класуз CLSID {BE39F3DA-1B13-11D0-887F-00A0C90F2744} не вдалося через таке помилка: 80040154 Клас не зареєстрований (виняток з HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Відповіді:

1 для відповіді № 1

Робочий код:

VBIDE.VBComponent oModule;

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