none
Word文書の作成方法について教えてください。 RRS feed

  • 質問

  • いつもお世話になります。
    VisualC#2010、WindowsXPでの動作について質問があります。
    Word文書の作成方法について教えてください。
    http://support.microsoft.com/default.aspx?scid=kb;ja;316384
    にあるとおりに、officeのPIAをダウンロードして、
    参照設定で、Microsoft.Office.Interop.Word.dll
    を追加しました。
    バージョンは、
    10.0.250.4.0
    となっています。

    このとおり、ボタンを追加して、コンパイルし、ボタンを押しました。
    すると、
     oWord = new Word.Application();
    の行で、
    COMExceptionはハンドルされませんでした。
    CLSID {000209FF-0000-0000-C000-000000000046} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154 クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))。
    というエラーで先に進めません。

    Officeは所有していないので、インストールもしておりませんが、ひょっとしてそれが問題でしょうか?
    アドバイスいただければと。

    2011年1月12日 12:09

回答

  • Officeは所有していないので、インストールもしておりませんが、ひょっとしてそれが問題でしょうか?


    まさにそれが問題です。
    オートメーションとは、PC にインストールされている Word をコードで動かすのです。
    • 回答としてマーク d-kot 2011年1月12日 13:30
    2011年1月12日 12:32

すべての返信

  • Officeは所有していないので、インストールもしておりませんが、ひょっとしてそれが問題でしょうか?


    まさにそれが問題です。
    オートメーションとは、PC にインストールされている Word をコードで動かすのです。
    • 回答としてマーク d-kot 2011年1月12日 13:30
    2011年1月12日 12:32
  • totojoさん、早速のご回答ありがとうございます。
    が~ん、そうでしたか。
    Wordなしで、Word文書を生成することはむずかしいですよね?
    Word2004は無理としても、Word2007ならなんとかなるでしょうか?
    先達のアドバイスもとむです…。
    2011年1月12日 13:30
  • Word2004は無理としても、Word2007ならなんとかなるでしょうか?

    Word のバージョンを問わず、Word.Application といったような形のインターフェースを使うには、Word が必須です。

    Wordなしで、Word文書を生成することはむずかしいですよね?

    サードパーティーのコンポーネント・ライブラリを探すか、自力で Word フォーマットに基づいて保存するかといったところでしょうか。
    Word フォーマットを扱うライブラリの自作はおすすめしませんできませんが。(売り物があるのであれば買うべき)

    # Word を扱うライブラリで日本語対応があるかどうかは未調査。
    # 海外製品を使うと、日本語ならでは何かが使えないとか、日本語版だとうまくいかないとかリスクがあるかも。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年1月12日 14:45
    モデレータ
  • Word 2007 以降であれば文書フォーマットが公開されているので、自力でなんとかできるとは思います。
    「Open XML word」あたりで検索すれば、結構な量がヒットします。

    # NPOI は Excel にしか対応していないなぁ...。
    2011年1月12日 18:32
  • バージョン10というのはOffice XPを指します。

    Word 2004というのはMac版です。

    totojoさんの書かれているようにWord 2007以降のdocx形式は仕様が公開されています。(それ以前のdoc形式も公開されていたような。)
    docx形式はXMLですので、System.IO.Packaging namespace のクラスを使用してアクセスできます。

    大抵の場合、ゼロから文章を作成したいということではなく、なんらかテンプレートにデータを流し込んでいくものでしょうからデータ部分だけを操作するのであればこの方法も可能かと。
    # で、Word形式の必要がないのならInfoPathとか考えたくなるわけですが。

    2011年1月12日 21:38
  • (それ以前のdoc形式も公開されていたような。)
    はい、されています。
    http://msdn.microsoft.com/en-us/library/ff381461.aspx
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年1月12日 22:08
    モデレータ
  • コードスニペットもありましたね(^^)

    Code Snippets for Open XML Development http://blogs.msdn.com/b/dmahugh/archive/2006/06/17/635485.aspx

    2007 Office System Sample: Open XML File Format Code Snippets for Visual Studio 2005 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8d46c01f-e3f6-4069-869d-90b8b096b556&displaylang=en

     


    K.Oumi

    • 編集済み K.Oumi 2011年1月13日 3:26 フォーマットガ・・・
    2011年1月13日 3:24
  • Azuleanさん、ありがとうございます。
    売り物にするつもりは皆無で、いや、売れるんなら売りたいですが、それはそれとして、とりあえず自分用ですね。
    日本語対応というのも問題ですね。たしかに。
    doc形式も仕様は公開されているんですか!

    totojoさん。なるほど。おっしゃるとおり、Word2007ならなんとかなるかもですね。

    佐祐理さん、ありがとうございます。Word2004はMac版でしたか。officeはもってないので関心が薄く…。
    で、おっしゃるとおりで、テンプレートに、差し込みたいというだけなので、XMLでなんとかなるといいな~とは思っています。

    K.Oumiさん、情報ありがとうございます。
    なんか、インストールないとだめというのがよくわかりませんが、ちょっとやってみる準備を始めようかなと思います。

    2011年1月13日 6:16