0

私が取り組んでいるサンプルでは、​​クラス Microsoft_Office Excel ワークシートの CoCreateInstance を呼び出します。0x80040514 (「クラスが登録されていません」) の HRESULT で失敗します。他のエクセルのクラス(Excel.Application)はシステムに登録されているのですが、ワークシートのクラスは登録されていません……このクラスを登録することはできますか?

更新: Microsoft の DSOFramer サンプル プロジェクトを使用しています。最初に IMoniker クラスを使用してバインドを試みます。それが失敗した場合は、clsid の CoCreateInstance を呼び出します。これは他の MS Office オブジェクトでも機能する可能性がありますが、Excel の場合、クラスはワークシート用です。サンプルを CoCreateInstance _Application に変更し、ワークブックを取得して、ターゲット ファイルの Workbooks::Open を呼び出し、Worksheet オブジェクトを返します。次に、そのポインターを返し、元のサンプル コード パスにマージしました。すべてが機能しています。

4

1 に答える 1

1

インストールに失敗している可能性があると思います。私のprogIdがそのように破損している場合、インストールを修復すると、そのクラスが登録されることがわかりました。

質問ですが、なぜシート オブジェクトを作成しようとしているのでしょうか。Workbook オブジェクトから取得できるようです。実際、これはおそらくあなたがとにかくする必要があることだと思います。

于 2008-11-04T15:28:29.617 に答える