オートメーションを使用して、Visual C# .NET で Office ドキュメントのプロパティを取得および設定する方法

文書翻訳 文書翻訳
文書番号: 303296 - 対象製品
この記事は、以前は次の ID で公開されていました: JP303296
すべて展開する | すべて折りたたむ

概要

この資料では、Microsoft Word 文書のプロパティを操作する Visual C# .NET のオートメーション クライアントを作成する方法を、例を挙げて紹介します。この資料のサンプル コードでは Word のオートメーションに限定して説明していますが、同様の手法を Microsoft Excel や Microsoft PowerPoint にも適用できます。

詳細

Microsoft Word 用のオートメーション クライアントを作成する

  1. Visual Studio .NET を起動します。
  2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。[プロジェクトの種類] ボックスの一覧の [Visual C# プロジェクト] をクリックし、[テンプレート] ボックスの [Windows アプリケーション] をクリックし、[OK] をクリックします。デフォルトで Form1 が作成されます。
  3. Microsoft Word のオブジェクト ライブラリへの参照を追加します。これを行うには、以下の手順を実行します。
    1. [プロジェクト] メニューの [参照の追加] をクリックします。
    2. [COM] タブで Microsoft Word のオブジェクト ライブラリをクリックし、[選択] をクリックします。

      : Microsoft Office 2003 には、プライマリ相互運用機能アセンブリ (PIA) が含まれています。Microsoft Office XP の場合、PIA は含まれていませんが、PIA をダウンロードすることはできます。 Office XP 用の PIA の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
      328912 Microsoft Office XP 用の PIA (Primary Interop Assemblies) のダウンロード
    3. [参照の追加] ダイアログ ボックスで [OK] をクリックして、選択を確定します。選択したライブラリのラッパーを生成するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。
  4. [表示] メニューの [ツールボックス] をクリックしてツールボックスを表示し、Form1 にボタンを追加します。
  5. [button1] をダブルクリックします。フォームのコード ウィンドウが表示されます。
  6. コード ウィンドウには、次のコードが表示されます。
    private void button1_Click(object sender, System.EventArgs e)
    {
    }
    					
    これを次のコードで置き換えます。
    private void button1_Click(object sender, System.EventArgs e)
    {
       Word.Application oWord;
       Word._Document oDoc;
       object oMissing = Missing.Value;
       object oDocBuiltInProps;
       object oDocCustomProps;
    			
       //Create an instance of Microsoft Word and make it visible.
       oWord = new Word.Application();
       oWord.Visible = true;
    
       //Create a new Document and get the BuiltInDocumentProperties collection.
       oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, 
                                  ref oMissing);
       oDocBuiltInProps = oDoc.BuiltInDocumentProperties;
       Type typeDocBuiltInProps = oDocBuiltInProps.GetType();
    
       //Get the Author property and display it.
       string strIndex = "Author";
       string strValue;
       object oDocAuthorProp = typeDocBuiltInProps.InvokeMember("Item", 
                                  BindingFlags.Default | 
                                  BindingFlags.GetProperty, 
                                  null,oDocBuiltInProps, 
                                  new object[] {strIndex} );
       Type typeDocAuthorProp = oDocAuthorProp.GetType();
       strValue = typeDocAuthorProp.InvokeMember("Value", 
                                  BindingFlags.Default |
                                  BindingFlags.GetProperty,
                                  null,oDocAuthorProp,
                                  new object[] {} ).ToString();
       MessageBox.Show( "The Author is: " + strValue,"Author" );
    
       //Set the Subject property.
       strIndex = "Subject";
       strValue = "The Subject";
       typeDocAuthorProp.InvokeMember("Item", 
                                  BindingFlags.Default | 
                                  BindingFlags.SetProperty, 
                                  null,oDocBuiltInProps, 
                                  new object[] {strIndex,strValue} );
    			
       //Add a property/value pair to the CustomDocumentProperties collection.
       oDocCustomProps = oDoc.CustomDocumentProperties;
       Type typeDocCustomProps = oDocCustomProps.GetType();
    
       strIndex = "Knowledge Base Article";
       strValue = "Q303296";
       object[] oArgs = {strIndex,false,
                         MsoDocProperties.msoPropertyTypeString,
                         strValue};
    
       typeDocCustomProps.InvokeMember("Add",BindingFlags.Default | 
                                  BindingFlags.InvokeMethod, null, 
                                  oDocCustomProps, oArgs );
    
       MessageBox.Show("Select \"Properties\" from the File menu "
            + "to view the changes.\nSelect the Summary tab to view "
            + "the Subject property and the Custom tab to view the Knowledge"   
            + "Base Article property.", "Check File Properties",
            MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
    					
  7. コード ウィンドウの最上部にスクロールし、using ディレクティブのリストの末尾に以下の行を追加します。
    using Microsoft.Office.Core;
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
    					
  8. F5 キーを押してアプリケーションを実行します。
: DocumentProperties インターフェイスと DocumentProperty インターフェイスは遅延バインドが実行されるインターフェイスです。これらのインターフェイスを使用するには、IDispatch インターフェイスと同様に処理する必要があります。

関連情報

詳細については、次の Microsoft Developer Network Web サイトを参照してください。
Microsoft Office Development with Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
303294 [HOWTO] Visual Basic .NET でオートメーションを使用して Office ドキュメントのプロパティを設定する方法

プロパティ

文書番号: 303296 - 最終更新日: 2007年1月17日 - リビジョン: 5.5
この資料は以下の製品について記述したものです。
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002
キーワード:?
kbpia kbautomation kbhowto KB303296
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com