tanaka's Programming Memo

プログラミングについてのメモ。

Word2010でファイルの詳細を修正する

Windows7(64bit)では、dsofile.dllが使えないようだったので、別の方法で、Officeファイルの詳細を変更した。

環境

  • Windows7 64bit Professional
  • VisualStudio2010 Professional C#
  • Office2010

実装方法

  1. 普通にC#のWindowsアプリケーションのプロジェクトを作成する。
  2. [参照設定]の[.NET]タブから以下を追加する。バージョンを一致させないとエラーになるので注意。
    • Microsoft.Office.Interop.Word
    • Office
  3. プログラム内に以下を追加する。
using Word = Microsoft.Office.Interop.Word;
using Office = Microsoft.Office.Core;
  1. Wordを起動するコード
Word.Application appWord = new Word.Application();
  1. Wordファイルを開く
appWord.Documents.Open(ファイル名);
  1. ファイルの詳細の作成者を参照する
MessageBox.Show(appWord.ActiveDocument.BuiltInDocumentProperties["Author"].Value);
  1. ファイル詳細の製作者を書き換える
appWord.ActiveDocument.BuiltInDocumentProperties["Author"].Value="新しい作成者";
  1. 保存
appWord.ActiveDocument.Save();
  1. Wordを閉じる
appWord.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
appWord = null;
  1. 読み込ませるWord文章に何も書かれていないと修正が反映されないので注意!!

注意点

  • BuiltInDocumentPropertiesへのアクセス
    • VisualStudio2010では型キャストは不要。
    • .Valueの付け忘れ。
    • 変数に入れる場合は、dynamic型を利用する。
  • 修正がうまくいかない
    • ドキュメントに何も書かれていないとうまくいかない。空白や改行を入れる。

PowerPointとExcel

PowerPointやExcelの場合は、以下を追加する。

  • 参照
  • using宣言
  • BuiltInDocumentPropertiesへのアクセス
    • appExcel.ActiveWorkbook.BuiltinDocumentProperties[属性].Value
    • appPP.Presentations[1].BuiltInDocumentProperties[属性].Value