Використовуючи VS2010, я не можу використовувати VBIDE interop DLL. Чи може хто-небудь, будь ласка, подивіться, чи зможе він відтворити на своєму комп'ютері - кодом прямо з http://support.microsoft.com/kb/303872
Створити додаток winform в C #.
Посилання на ці 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
У 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);