2

Wordドキュメントをユーザーのコンピューターに保存、開き、印刷する古いvb6アプリを管理しています。先日、office 2003 から office 2010 に切り替えたとき、ソフトウェアが保存されたレポートを開いて印刷できなくなったという苦情が寄せられ始めました。オフィサー 2010 を削除して 2003 をインストールすると、問題が解決します。

これを処理するサブ プロシージャはすべてバニラの msdn コードであり、特定のバージョンの Word に結び付けるものを見つけることができません。次に考えるのは、おそらく OLE dll リファレンスです。Office の新しいバージョンで動作するように、DLL への VB6 参照をどこでどのように更新できますか?

他の提案は大歓迎です。

4

3 に答える 3

1

よくわかりませんが、早期バインディングを使用しようとしているようです。もしそうなら、これはおそらくあなたの問題です。

10 年以上にわたって、これについて警告する MS KB 記事が多数あります。例:

http://support.microsoft.com/kb/247579

http://support.microsoft.com/kb/245115

つまり、任意のバージョンの Word へのすべての参照を削除し、すべてのオブジェクトを宣言し、必要に応じて の代わりにまたはAs Objectを使用します。CreateObject()GetObject()Set Obj = New LibName.ClassName

これらの KB 記事は現在では古く、Word 95 への参照を使用してコンパイルを回避し、Word 2002 を自動化するという古いルールはもはや適用されないようです。サポートされている最も古いバージョンの Office を開発マシンにインストールする必要があることに加えて、Office 2003 から上位互換性が失われたと思われます。

あなたの最善の策は、遅延バインディングです。ほとんどのプログラムではパフォーマンスの低下は最小限であるため、最大の頭痛の種は IntelliSense が失われることです。

于 2011-04-10T05:36:57.347 に答える
0

参照をやみくもに更新すると、Office 2003のサポートが機能しなくなる可能性があります。それが問題にならない場合は、それを選択してください。

そうである場合は、特にアプリが失敗している場所を絞り込む必要があります。バージョン間の自動化モデルの回転数には、いくつかの小さな違いがあります。それほど多くはありませんが、そこにあります。

ほとんどの場合、コードは2003に固有の方法で何かを実行しています。MSは後方互換性を維持するのにかなり良い仕事をしていますが、100%ではありません。

于 2011-04-08T18:44:27.300 に答える
0

「新しいバージョンの Office で動作するように DLL への VB6 参照をどこでどのように更新できますか?」という質問に答えるには、もちろん、Office 2010 と VB 6 がインストールされたコンピューターが必要です。VB IDE でプロジェクトを開くと、適切な Word ライブラリへの参照を変更できます。参照は VBP ファイルにも記載されています。たとえば、次のようになります。

Type=Exe
Reference=*\G{00020905-0000-0000-C000-000000000046}#8.0#409#C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB#Microsoft Word 8.0 Object Library
Reference=*\G{00025E01-0000-0000-C000-000000000046}#4.0#0#C:\Program Files\Common Files\Microsoft Shared\DAO\DAO350.DLL#Microsoft DAO 3.51 Object Library
Reference=*\G{420B2830-E718-11CF-893D-00A0C9054228}#1.0#0#C:\WINDOWS\system32\SCRRUN.DLL#Microsoft Scripting Runtime

その後、再コンパイルします。そこにいる場合は、デバッグを開始して、何が詳細に発生し、レポートが失敗する理由を確認できます。これがあなたの質問であれば、再コンパイルせずに参照を変更する方法はありません。

開く、保存、印刷に関連する単純なバニラ コードの場合、何か問題が発生することは考えにくいです。

一方、使用されているWord形式の「ベースファイル」はありますか?それらは古い形式を持っている可能性があります (Office 95 から、最近これを見たばかりです)。これらのファイルを手動で開いてみて、何が起こるかを確認してください。

于 2011-04-09T02:03:51.710 に答える