2016-08-17 2 views
-1

Env:Windows 10 64ビット、Visual Studio express 2013. Microsoft Office 2013および2003をインストールしました。さらにMicrosoft Office 11.0 object libraryおよびMicrosoft Word 11.0 object libraryの参照。ただし、動作しません。 enter image description here enter image description hereMicrosoft Word 11.0オブジェクトライブラリでMicrosoft.Office.Interop.Wordを使用しようとすると、コンパイルエラーが発生する

は私がMicrosoft Word 15.0 object libraryMicrosoft Word 11.0 object libraryを変更し、すべてがある場合OK.But私はWord 2003のために働くために必要なことを試してみたので、私は何をすべきでしょうか?

コード:

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.Text; 
using Word = Microsoft.Office.Interop.Word; 

namespace readDOC { 
    class Program { 
     static void Main(string[] args) { 

      string cd = Directory.GetCurrentDirectory(); 
      Word.Application word = new Word.Application(); 
      List<string> dirs = new List<string>(); 
      foreach (string dir in Directory.GetFiles(@".", "*.doc?")) { 
       if (dir.IndexOf('~') == -1) { 
        dirs.Add(cd + dir.Substring(1)); 
       } 
      } 
      foreach (string fn in dirs) { 
       Word.Document docs = word.Documents.Open(fn); 
       try { 
        docs.Protect(Word.WdProtectionType.wdAllowOnlyReading); 
        Console.WriteLine(@"OK:{0}.", fn); 
       } catch (Exception e) { 
        Console.WriteLine(@"NOT OK:{0}.", fn); 
       } finally { 
        docs.Close(); 
       } 
      } 
      word.Quit(); 
      Console.WriteLine("Press any key to finish"); 
      Console.ReadLine(); 
     } 
    } 
} 
+2

何が問題なのですか?エラーは何ですか? *完全な例外テキスト、つまり 'Exception.ToString()'を使用してください。ファイルが見つからない可能性があります。エラー –

+0

お使いのコンピュータで[特定のバージョンを開くことはできません]。[ここで説明されています](http://stackoverflow.com/questions/12073152/how-to-open-特定のバージョンの単語2007-2010-in-excel)これは単語に固有のものではなく、COM/OLEの仕組みです。各COMアプリケーションは以前のすべてのインターフェイスを登録するので、11.0を尋ねると、このアプリケーション、つまりWord 2013が登録されます。 –

+0

なぜ2003との相互運用を希望しますか? 'docx'ファイルの代わりに' doc'を生成する必要はありません。interopを通して保存する形式を指定することができます。しかも、古いフォーマットを使用している人はほとんどいません。 'docx'はすでに7歳です。あなたはWordをインストールせずにOpenXML SDKを使って 'docx'ファイルを生成するだけです。 –

答えて

1

私はあなたが相互運用機能(拡張機能)を使用していないので、それがあると信じて質問を確認した後。

ビルドプラットフォームターゲットをx86に設定していることを2003を追加していることを確認してください。 2003年のx64サポートはありません。それは私の推測でしょう。これは私の仕事のマシンなので、私は2003年をテストすることはできません。

私の提案があなたを正しい方向に向けることを願っています。

関連する問題