0

VB6 開発プロジェクトで Microsoft Word 97 への参照を使用する必要があります。(それは長い話です。一言で言えば、MSWord97 への参照を使用すれば、Word 97+ をサポートできます)。

開発マシンで Microsoft Word 2007 を使用しています。理想的には、Word97 をインストールせずに済ませることができれば、それは素晴らしいことです。

VB6 で、C:\Software\Microsoft\Office97Pro\OFFICE\mso97.dll (ソフトウェアへのパス - インストールされていない) への参照を設定しようとしましたが、うまくいきませんでした。次に、regsvr32 mso97.dll を試しましたが、エラーが発生しました: mso97.dll が読み込まれましたが、DllRegisterServer エントリ ポイントが見つかりませんでした。

これを機能させるために何をする必要があるか知っている人はいますか?それとも、自分のマシンに Word 97 をインストールして動作させる必要がありますか?

4

2 に答える 2

0

基本的に、複数のOfficeバージョンの自動化クライアントの作成で提案されているように実行したいようですが、遅延バインディングの使用に関するアドバイスは無視しています。

関連するタイプライブラリはMSWORD8.OLBですが、Word97またはWordを含むOffice97Editionなしでそれを取得する正当な方法があるかどうかは思い出せません。オフハンドこのタイレピブを登録すると、Word 2007のインストールにどのような影響があるかわかりません。これは、多くのClassID値を共有している可能性があるためです。

VC ++の記事PRB:複数のバージョンのOfficeがインストールされている場合、#importを使用したOfficeの自動化は失敗する可能性があるMicrosoftは、適切なOLBを参照する限り、これが実行可能な戦略になる可能性があることを示唆しているようです。VB6はtypelibの検索にVC++#importセマンティクスを使用しないため、これはおそらくC++よりもVB6の方が問題が少ないでしょう。説明は、実行時バインディングをもう一度示唆することで結論付けられるため、ここでも、実行時の動作を参照している可能性があります。

記事WD:Word for Windowsタイプライブラリの入手方法には、Word6およびWord7のtypelibへのリンクがあります(リンクは適切ではない可能性があります)が、Word97にはリンクがありません。Word97をインストールして入手することをお勧めします。

いずれにせよ、Word 97の定数や列挙型などを使用し、すべてのオブジェクトに実行時バインディングを使用するのが安全だと思われます。この「半斤」は何もないよりはましです。「Intellisense」の支援を受けるためにアーリーバウンド宣言を使用して初期開発を行うこともできます。その後、戻ってすべてのアーリーバウンドオブジェクト宣言をレイトバウンドに変更し、対応するレイトバウンド呼び出しにAs Object置き換えて、実際の強いものを残します。末尾のコメントとして入力します。条件付きコンパイルブロックを使用して、後で初期バインディングに簡単に戻すこともできます。Set X = New TYPECreateObject()#If/#Else

今日、MSWORD8.OLBを合法的に取得することは不可能かもしれないので、OFF:「VisualBasic for Applicationsの組み込み定数」(WC0993)を検討することもできます。これは、Wordの多くの古いバージョンの定数を定義するVB.BASモジュールを含むダウンロードを提供します。他のOfficeアプリケーション。ダウンロードリンクは機能します-少なくとも現時点では!

名前付き定数がtypelibsの主な理由であるため(遅延バインディングのみが本当に安全であることを考えると)、これは悪い妥協ではないかもしれません。必要な.BASファイルを取得してクリーンアップし(そこにいくつかの疣贅があるはずです)、少しの努力でそれらの定数と列挙型だけを含むカスタムの「ジェネリックワード」TLBに変換することもできます。そのことについては、誰かがすでにこの仕事をしているかもしれません。ただし、独自の「VB .BAS to ODL / IDL」コンパイラを作成する前に、いくつかの検索を試してみることをお勧めします。

于 2012-08-23T08:33:46.963 に答える
0

MS Word x.0 Object Libraryプロジェクトへの参照を追加するときは、x が作業対象の MS Word のバージョンである場所を探します。Word 2007 (バージョン 12.0) より前のバージョンを参照できると思います。8.0 を探します。

于 2012-08-22T22:48:41.573 に答える