Env:Windows 10 64ビット、Visual Studio express 2013. Microsoft Office 2013および2003をインストールしました。さらにMicrosoft Office 11.0 object library
およびMicrosoft Word 11.0 object library
の参照。ただし、動作しません。 Microsoft Word 11.0オブジェクトライブラリでMicrosoft.Office.Interop.Wordを使用しようとすると、コンパイルエラーが発生する
は私がMicrosoft Word 15.0 object library
へMicrosoft 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();
}
}
}
何が問題なのですか?エラーは何ですか? *完全な例外テキスト、つまり 'Exception.ToString()'を使用してください。ファイルが見つからない可能性があります。エラー –
お使いのコンピュータで[特定のバージョンを開くことはできません]。[ここで説明されています](http://stackoverflow.com/questions/12073152/how-to-open-特定のバージョンの単語2007-2010-in-excel)これは単語に固有のものではなく、COM/OLEの仕組みです。各COMアプリケーションは以前のすべてのインターフェイスを登録するので、11.0を尋ねると、このアプリケーション、つまりWord 2013が登録されます。 –
なぜ2003との相互運用を希望しますか? 'docx'ファイルの代わりに' doc'を生成する必要はありません。interopを通して保存する形式を指定することができます。しかも、古いフォーマットを使用している人はほとんどいません。 'docx'はすでに7歳です。あなたはWordをインストールせずにOpenXML SDKを使って 'docx'ファイルを生成するだけです。 –