none
Office2010が入っているPCで、Interop.Excel.DLLを使用したExcel出力でエラー RRS feed

  • 質問

  •  

    Visual Basic 2008 Expressにて作成した、Interop.Excel.DLLを使用したExcel出力アプリにて

    後述の条件を満たすOffice2010が入っているPCで、以下のエラーが発生します。

     

    CLSID {00024500-0000-0000-C000-000000000046}を含むコンポーネントのCOMクラス ファクトリを取得中に、次のエラーが発生しました:
    80040154。

    詳細:System.Runtime.InteropServices.COMException (0x80040154): CLSID {00024500-0000-0000-C000-000000000046} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154。

     

    Office2010だけが入っているか、あるいは、Office2007よりも先にOffice2010が入っているとエラーが発生します。

    Office2007をインストールした後にOffice2010をインストールした場合だけ、エラーが発生しません。しかしこの場合は、Office2010とOffice2007を1台のPCに入れる必要があります。

    Office2010の後にOffice2007を入れてもエラーになります。この後に、Office2010をアンインストールするとエラーが発生しません。

     

    どうしたら直るか、同じケースに遭遇した方いらっしゃいませんでしょうか?

    ※マイクロソフト サポート オンラインの有料サービス(Web)も利用しようとしたんですが、サイトが途中で応答しなくなって、できませんでした。

    ※※クレジット決済されるのかどうかが気になりますが。
    2010年8月13日 18:19

すべての返信

  • 同一内容のようなのでリンクしておきます。
    http://ap.atmarkit.co.jp/bbs/core/vblab/23814
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年8月14日 10:24
    モデレータ
  • ちなみに、実行 OS は何でしょうか?

    # 64bit Windows である場合は、Office 2010 インストール時に 32bit 版がインストールされているか確認ください。
    # なお、Office 2007 などの過去のバージョンがある場合は 32bit 版が自動的に選択されたように思いますが、未確認です。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年8月14日 10:29
    モデレータ
  • 記載が漏れていて大変失礼しました。実行OSは

    Windows XP Home 32bit

    Windows XP Professional 32bit

    Windows 7 Home 32bit

    Windows 7 Home 64bit

    です。上記すべてで同じ現象が起きます。

    64bitに入れたoffice2010は評価版だったんですが、

    Office2010のスタートメニューからパスを見たところ

    C:\Program Files (x86)\Common Files\microsoft shared\Virtualization Handler

    だったので、32bit用が入っていると思います。


    2010年8月14日 14:51
  • Office 2010に関して、64bitOSにOffice 2010 64bit版を入れたものと、32bit版を入れたものに関して
    以下の違いがありました。64bitのOfficeでは正常動作。32bitのOfficeでは下記のエラーが出ました。

    See the end of this message for details on invoking 
    just-in-time (JIT) debugging instead of this dialog box.
    
    ************** Exception Text **************
    System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=多分hogehoge' or one of its dependencies. 指定されたファイルが見つかりません。
    File name: 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=多分hogehoge'
     at ExecTest.Form1.Button1_Click(Object sender, EventArgs e)
     at System.Windows.Forms.Control.OnClick(EventArgs e)
     at System.Windows.Forms.Button.OnClick(EventArgs e)
     at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
     at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
     at System.Windows.Forms.Control.WndProc(Message& m)
     at System.Windows.Forms.ButtonBase.WndProc(Message& m)
     at System.Windows.Forms.Button.WndProc(Message& m)
     at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
     at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
     at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    
    WRN: Assembly binding logging is turned OFF.
    To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
    Note: There is some performance penalty associated with assembly bind failure logging.
    To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
    
    
    

    私どものテスト環境では下記のエラーが表示されました。
    #個人としてはこれ以上調べようがorz
    素人目にもわかる違い:PrimaryInteropAssemblyNameに関するToken情報が全部抜け落ちている

    64bit版

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}]
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7]
    "PrimaryInteropAssemblyName"="Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=たぶんhogehoge"
    @="Microsoft Excel 14.0 Object Library"
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\0]
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\0\win32]
    @="C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE"
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\FLAGS]
    @="0"
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\HELPDIR]
    @="[{00020813-0000-0000-C000-000000000046}]"
    
    
    32bit
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}]
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7]
    @="Microsoft Excel 14.0 Object Library"
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\0]
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\0\win32]
    @="C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE"
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\FLAGS]
    @="0"
    
    [HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.7\HELPDIR]
    @="[{00020813-0000-0000-C000-000000000046}]"
    
    • 編集済み ChukiMVP 2010年8月15日 6:53 たぶんホゲホゲ
    2010年8月15日 6:35