質問

現在開発中のアプリケーションには、MS Word を使用してアプリケーション内の特定のテキスト領域でスペル チェックを実行するための要件が​​あります。

現在、Office 2007 (Office 12 com オブジェクト) を使用しています。

私の質問は、Office 12 オブジェクトを追加すると、Office 2003 がインストールされているボックスではどうなるでしょうか?これは、他の開発ボックスとエンド ユーザーの両方に関するものです。

最終的にはそれらのユーザーは呪文機能を利用できなくなると考えるのは正しいでしょうか?また、Office 11 オブジェクトを使用した場合、Office 07 がインストールされているユーザーはスペルチェックを実行できないことになりますか?

役に立ちましたか?

解決

Word との依存関係の使用は、両方に異なるバージョンがインストールされているか、Office がまったくインストールされていないため、諦めました。代わりに選択するのは、 ネットスペル.

他のヒント

ここでは推測ですが、2003 インストールでは 2007 PIA (Primary Interop Assembly) を使用できないのであれば、必要な呼び出しは 2003 インストールと 2003 インストールでは変わらないと思いますので、リフレクション経由で PIA にアクセスしてみるとよいでしょう。 2 つあれば問題はありません。インストールされている方を使用します。PIA もインストールしている場合は、ユーザーにどちらをインストールしているかを教えてもらうか、もう少し賢明になって 2007 を試して、失敗した場合は 2003 を試すことができます。

先ほども言いましたが、推測ですが、試してみる価値はあるかもしれません。

編集:私はこれを見つけました リンク Office PIAについて。これは Excel を指しますが、実際には Office 全般が対象になります。あなたが抱えている仕事を羨ましいとは思いません。PIA (インストールされている場合とインストールされていない場合があります) を検出し、それに応じて行動する必要があるようです。私にとっては反省の仕事のように思えます。

新しいバージョンの Office は、古いバージョンの COM オブジェクトとの互換性がすべてではないにしても、ほとんど維持されます。つまり、Office 2003 および 2007 に対してプログラムする場合は、Office 11 COM オブジェクトは 2003 のリリース時に利用可能な最新のものであったため、依存関係として使用する必要があります。必要なメソッドが両方のバージョンの COM オブジェクトに存在することを確認すれば、古い COM オブジェクトを使用している限り問題はありません。

残念ながら、私はこのソリューションを自分の仕事に使用したことがありますが、スペル チェックでテストしたことはありません。最後に、統合したいすべてのバージョンの Office でコードをテストしてください。

この質問に対する私の直感的な反応は、単に別の道を行くことを提案するということです。サードパーティのスペルチェック コントロールを使用してみてください。これらは比較的安価です (無料のコントロールもいくつか見つかるかもしれません)。少なくともそうすることで、アプリに含まれるコントロールのバージョンを制御し、その機能を信頼できるようになります。率直に言って、このライブラリがまだ Windows に組み込まれていないことに驚きました。Windows がサポートする言語がすべてあるため、確かに複雑ですが、ユーザーの期待という点では、最近ではコピー/ペーストに似ています。

実際には、両方のバージョンで動作するために必要な office11 と office12 の相互運用機能をパッケージ化できます。細かい作業が必要ですが、なんとか出来ました。レジストリをチェックしてどの相互運用機能を呼び出すかを確認し、正しいバージョンでスペル チェックを実行します。Word がインストールされているかどうかまでチェックし、Word がインストールされていないとスペル チェックができないというエラー アラートをスローします。Office に関連付けられている医学辞書の使用が義務付けられているため、私たちは Word を使用することに縛られています。

interop または Com ラッパーで検索すると、どちらもかなり簡単に使用できることがわかると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top