C#でExcelを起動させてみようと思い、試行錯誤していましたが
エラーが発生して上手いこといかず苦戦していました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; namespace EXCELいろいろ { public partial class Start_excel : Form { public Start_excel() { InitializeComponent(); } private void excel_start_Click(object sender, EventArgs e) { //EXCEL起動 Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); ExcelApp.Visible = false; Workbook ExcelWorkbook = ExcelApp.Workbooks.Open(@"D:\Study\001_起動テスト.xlsx"); } } } |
■エラー内容
System.InvalidCastException: ‘型 ‘Microsoft.Office.Interop.Excel.ApplicationClass’ の
COM オブジェクトをインターフェイス型 ‘Microsoft.Office.Interop.Excel._Application’ に
キャストできません。IID ‘{000208D5-0000-0000-C000-000000000046}’ が
指定されたインターフェイスの COM コンポーネント上での QueryInterface
呼び出しのときに次のエラーが発生したため、この操作に失敗しました:
インターフェイスが登録されていません (HRESULT からの例外:0x80040155)。’
■確認したこと
→Officeの修復、再インストールも試しましたが改善せず。
また、過去に別バージョンのOfficeを使っているとレジストリに
不要な設定が残ってしまうことがあるようで、
そっちも確認しましたが特に問題はなさそう。。
※HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}に
「1.9」とは別に「1.8」が残っていることがあるようで、消すと上手くいくこともあるようです。
消すときは必ずバックアップ取りましょう。
↓
↓
何やかんや調べていたら解決したので書き残しておきます。
原因が分からないので一概に直るとはいえないのですが、、
ソリューションエクスプローラーのプロパティから「ビルド」を選択。
プラットフォーム項目の設定を変更しました。(以下画像の通り)
コメントを残す