none
Word文書の参照についての質問 RRS feed

  • 質問

  • いつもお世話なっております。

     使用システム(OS:WinXP SP2/VS2005/Office2003)

     C#のプログラムで、Word文書を参照したいです。以下のコードを書いて、実行ファイルを実行したら、Office2003で正常に動作しますが、OfficeXPで例外が発生してしまいました。ビルドがOffice2003のマシンで行われました。

     また、このソースをOfficeXPが入っているPCでビルドすると、コンパイルエラーが出てしまいました。

     これというのは、やはり、ターゲットマシンにあるOfficeの版数に依存しているでしょうか

     よろしくお願い致します。

    using Word = Microsoft.Office.Interop.Word;

              :
                    object filename = FileName;
                    object readOnly = true;

                   object isVisible = false;

                    object missing = System.Reflection.Missing.Value;

                    WordApp.Visible = false;

                    //   Open the document that was chosen by the dialog
                    Word._Document oDoc = WordApp.Documents.Open(ref filename,
                        ref missing, ref readOnly, ref missing,
                        ref missing, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref isVisible, ref missing,
                         ref missing, ref missing, ref missing);

      

    2006年8月31日 6:20

すべての返信

  • ZhangLiQun さん、こんにちは。

     ZhangLiQun さんからの引用
    これというのは、やはり、ターゲットマシンにあるOfficeの版数に依存しているでしょうか

    こちらが参考になると思います。

    Office XP PIA および Office 2003 PIA を使用する の項から引用 :

    PIA はバージョン固有なので、アプリケーションのバージョンと同じバージョンの PIA を使用する必要があります。たとえば、Microsoft Office XP マネージ コード ソリューションを Microsoft Office 2003 に移行する場合、Office XP マネージ コード ソリューションを Office 2003 PIA を使って再コンパイルする必要があります。

    また、Office XP と Office 2003 の両方で同じソリューションを機能させる場合は、2 つの異なるセットアップ パッケージが必要になります (1 つは Office XP 用、もう 1 つは Office 2003 用)。Office XP 用の PIA の配置は、Office 2003 用の PIA の配置と大きく異なります。この違いの詳細については、Office XP PIA ダウンロードに含まれている ReadMe ファイルを参照してください。「Office 2003 PIA の再配布を回避する」で強調しているように、ソリューション配置シナリオによって Office 2003 PIA が再配置されてはいけません。ソリューションが Office 2003 PIA に依存している場合は、Office 2003 を使用して PIA が配布される必要があります。

    2006年8月31日 7:12
  • 次のドキュメントの遅延バインディングも参考になるかもしれません。
    Visual C# .NET で Office オートメーション サーバーをバインドする方法

    ただ、C# での遅延バインディングって、かなり面倒だと思いますので、じゃんぬねっとさんの方法が良いかと思います。(^^;

    2006年8月31日 10:14
  • TH01 様、じゃんぬねっと様、
     紹介して頂いた内容を拝見しました。とても参考になりました。結局、じゃんぬねっとさんの方法を採用させて頂きます。
     有難う御座いました。
                               以上

    2006年9月1日 6:20