方法: Visual C# の機能を使用して Office 相互運用オブジェクトにアクセスする (C# プログラミング ガイド)How to: Access Office Interop Objects by Using Visual C# Features (C# Programming Guide)

Visual C# には、Office API オブジェクトへのアクセスを容易にする機能があります。Visual C# has features that simplify access to Office API objects. 新機能は、名前付き引数と省略可能な引数、dynamic と呼ばれる新しい型、値パラメーターの場合と同様に COM メソッドの参照パラメーターに引数を渡す機能などです。The new features include named and optional arguments, a new type called dynamic, and the ability to pass arguments to reference parameters in COM methods as if they were value parameters.

このトピックでは、新機能を使用して、Microsoft Office Excel ワークシートを作成および表示するコードを記述します。In this topic you will use the new features to write code that creates and displays a Microsoft Office Excel worksheet. その後、Excel ワークシートにリンクされているアイコンを含む Office Word 文書を追加するコードを記述します。You will then write code to add an Office Word document that contains an icon that is linked to the Excel worksheet.

このチュートリアルを実行するには、Microsoft Office Excel 2007 と Microsoft Office Word 2007 またはそれ以降のバージョンがコンピューターにインストールされている必要があります。To complete this walkthrough, you must have Microsoft Office Excel 2007 and Microsoft Office Word 2007, or later versions, installed on your computer.

Windows VistaWindows Vista よりも前のオペレーティング システムを使用している場合は、.NET Framework 2.0.NET Framework 2.0 がインストールされていることを確認します。If you are using an operating system that is older than Windows VistaWindows Vista, make sure that .NET Framework 2.0.NET Framework 2.0 is installed.

注意

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。The Visual Studio edition that you have and the settings that you use determine these elements. 詳細については、「IDE をカスタマイズする」をご覧ください。For more information, see Personalizing the IDE.

新しいコンソール アプリケーションを作成するにはTo create a new console application

  1. Visual Studio を起動します。Start Visual Studio.

  2. [ファイル] メニューの [新規作成] をポイントし、 [プロジェクト] をクリックします。On the File menu, point to New, and then click Project. [新しいプロジェクト] ダイアログ ボックスが表示されます。The New Project dialog box appears.

  3. [インストールされたテンプレート] ペインで、[Visual C#] を展開し、[Windows] をクリックします。In the Installed Templates pane, expand Visual C#, and then click Windows.

  4. [新しいプロジェクト] ダイアログ ボックスの上部で、.NET Framework 4 (またはそれ以降のバージョン) がターゲット フレームワークとして選択されていることを確認します。Look at the top of the New Project dialog box to make sure that .NET Framework 4 (or later version) is selected as a target framework.

  5. [テンプレート] ペインの [コンソール アプリケーション] をクリックします。In the Templates pane, click Console Application.

  6. [名前] フィールドに、プロジェクトの名前を入力します。Type a name for your project in the Name field.

  7. [OK] をクリックします。Click OK.

    ソリューション エクスプローラーに新しいプロジェクトが表示されます。The new project appears in Solution Explorer.

参照を追加するにはTo add references

  1. ソリューション エクスプローラーで、プロジェクトの名前を右クリックし、[参照の追加] をクリックします。In Solution Explorer, right-click your project's name and then click Add Reference. [参照の追加] ダイアログ ボックスが表示されます。The Add Reference dialog box appears.

  2. [アセンブリ] ページの [コンポーネント名] 一覧で [Microsoft.Office.Interop.Word] を選択し、Ctrl キーを押しながら [Microsoft.Office.Interop.Excel] を選択します。On the Assemblies page, select Microsoft.Office.Interop.Word in the Component Name list, and then hold down the CTRL key and select Microsoft.Office.Interop.Excel. アセンブリが表示されない場合は、それをインストールして表示させることが必要になる場合があります (「方法: Office のプライマリ相互運用機能アセンブリをインストールする」を参照)If you do not see the assemblies, you may need to ensure they are installed and displayed (see How to: Install Office Primary Interop Assemblies)

  3. [OK] をクリックします。Click OK.

ディレクティブを使用して必要なものを追加するにはTo add necessary using directives

  1. ソリューション エクスプローラーで、Program.cs ファイルを右クリックし、[コードの表示] をクリックします。In Solution Explorer, right-click the Program.cs file and then click View Code.

  2. 次の using ディレクティブをコード ファイルの先頭に追加します。Add the following using directives to the top of the code file.

    using Excel = Microsoft.Office.Interop.Excel;
    using Word = Microsoft.Office.Interop.Word;
    

銀行口座の一覧を作成するにはTo create a list of bank accounts

  1. 次のクラス定義を Program.csProgram クラスの下に貼り付けます。Paste the following class definition into Program.cs, under the Program class.

    public class Account
    {
        public int ID { get; set; }
        public double Balance { get; set; }
    }
    
  2. 次のコードを Main メソッドに追加して、2 つの口座を含む bankAccounts 一覧を作成します。Add the following code to the Main method to create a bankAccounts list that contains two accounts.

    // Create a list of accounts.
    var bankAccounts = new List<Account> {
        new Account { 
                      ID = 345678,
                      Balance = 541.27
                    },
        new Account {
                      ID = 1230221,
                      Balance = -127.44
                    }
    };
    

口座情報を Excel にエクスポートするメソッドを宣言するにはTo declare a method that exports account information to Excel

  1. 次のメソッドを Program クラスに追加して、Excel ワークシートを設定します。Add the following method to the Program class to set up an Excel worksheet.

    Add メソッドには、特定のテンプレートを指定する省略可能なパラメーターがあります。Method Add has an optional parameter for specifying a particular template. C# 4C# 4 の新機能であるオプションのパラメーターでは、パラメーターの既定値を使用する場合は、そのパラメーターの引数を省略することができます。Optional parameters, new in C# 4C# 4, enable you to omit the argument for that parameter if you want to use the parameter's default value. 次のコードで引数が渡されないため、Add は、既定のテンプレートを使用して、新しいブックを作成します。Because no argument is sent in the following code, Add uses the default template and creates a new workbook. 以前のバージョンの C# では、同等のステートメントには、プレースホルダーの引数 ExcelApp.Workbooks.Add(Type.Missing) が必要です。The equivalent statement in earlier versions of C# requires a placeholder argument: ExcelApp.Workbooks.Add(Type.Missing).

    static void DisplayInExcel(IEnumerable<Account> accounts)
    {
        var excelApp = new Excel.Application();
        // Make the object visible.
        excelApp.Visible = true;
    
        // Create a new, empty workbook and add it to the collection returned 
        // by property Workbooks. The new workbook becomes the active workbook.
        // Add has an optional parameter for specifying a praticular template. 
        // Because no argument is sent in this example, Add creates a new workbook. 
        excelApp.Workbooks.Add();
    
        // This example uses a single workSheet. The explicit type casting is
        // removed in a later procedure.
        Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet;
    }
    
  2. 次のコードを DisplayInExcel の末尾に追加します。Add the following code at the end of DisplayInExcel. このコードでは、ワークシートの最初の行の最初の 2 つの列に値が挿入されます。The code inserts values into the first two columns of the first row of the worksheet.

    // Establish column headings in cells A1 and B1.
    workSheet.Cells[1, "A"] = "ID Number";
    workSheet.Cells[1, "B"] = "Current Balance";
    
  3. 次のコードを DisplayInExcel の末尾に追加します。Add the following code at the end of DisplayInExcel. foreach ループでは、ワークシートの連続した行の最初の 2 つの列に口座の一覧の情報が配置されます。The foreach loop puts the information from the list of accounts into the first two columns of successive rows of the worksheet.

    
    var row = 1;
    foreach (var acct in accounts)
    {
        row++;
        workSheet.Cells[row, "A"] = acct.ID;
        workSheet.Cells[row, "B"] = acct.Balance;
    }
    
  4. 次のコードを DisplayInExcel の末尾に追加して、コンテンツに合わせて列の幅を調整します。Add the following code at the end of DisplayInExcel to adjust the column widths to fit the content.

    workSheet.Columns[1].AutoFit();
    workSheet.Columns[2].AutoFit();
    

    C# の以前のバージョンでは、ExcelApp.Columns[1]Object を返し、AutoFit が Excel Range メソッドであるため、これらの操作の明示的なキャストが必要です。Earlier versions of C# require explicit casting for these operations because ExcelApp.Columns[1] returns an Object, and AutoFit is an Excel Range method. 次の行にキャストを示します。The following lines show the casting.

    ((Excel.Range)workSheet.Columns[1]).AutoFit();
    ((Excel.Range)workSheet.Columns[2]).AutoFit();
    

    C# 4C# 4 以降のバージョンでは、アセンブリが /link コンパイラ オプションで参照される場合、または同等に、Excel の [相互運用機能型の埋め込み] プロパティが true に設定されている場合は、返される Objectdynamic に自動的に変換されます。, and later versions, converts the returned Object to dynamic automatically if the assembly is referenced by the /link compiler option or, equivalently, if the Excel Embed Interop Types property is set to true. このプロパティの既定値は true です。True is the default value for this property.

プロジェクトを実行するにはTo run the project

  1. Main の末尾に次の行を追加します。Add the following line at the end of Main.

    // Display the list in an Excel spreadsheet.
    DisplayInExcel(bankAccounts);
    
  2. Ctrl キーを押しながら、F5 キーを押します。Press CTRL+F5.

    2 つの口座からのデータを含む Excel ワークシートが表示されます。An Excel worksheet appears that contains the data from the two accounts.

Word 文書を追加するにはTo add a Word document

  1. C# 4C# 4 およびそれ以降のバージョンで Office プログラミングを強化するその他の方法を説明するために、次のコードでは、Word アプリケーションを開き、Excel ワークシートにリンクするアイコンを作成します。To illustrate additional ways in which C# 4C# 4, and later versions, enhances Office programming, the following code opens a Word application and creates an icon that links to the Excel worksheet.

    この手順の後半で提供されている CreateIconInWordDoc メソッドを Program クラスに貼り付けます。Paste method CreateIconInWordDoc, provided later in this step, into the Program class. Add メソッドと PasteSpecial メソッドの呼び出しに伴う複雑さが、CreateIconInWordDoc の名前付き引数と省略可能な引数によって軽減されます。CreateIconInWordDoc uses named and optional arguments to reduce the complexity of the method calls to Add and PasteSpecial. これらの呼び出しによって、C# 4C# 4 で導入された、参照パラメーターを持つ COM メソッドの呼び出しを簡略化する 2 つの他の新しい機能が組み込まれます。These calls incorporate two other new features introduced in C# 4C# 4 that simplify calls to COM methods that have reference parameters. 第一に、値パラメーターの場合と同様に参照パラメーターに引数を渡すことができます。First, you can send arguments to the reference parameters as if they were value parameters. つまり、参照パラメーターごとに変数を作成することなく値を直接渡すことができます。That is, you can send values directly, without creating a variable for each reference parameter. コンパイラは引数の値を保持する一時変数を生成し、呼び出しから戻るときに変数を破棄します。The compiler generates temporary variables to hold the argument values, and discards the variables when you return from the call. 第二に、引数リスト内の ref キーワードを省略できます。Second, you can omit the ref keyword in the argument list.

    Add メソッドには 4 つの参照パラメーターがあり、これらはすべてオプションです。The Add method has four reference parameters, all of which are optional. C# 4C# 4 以降のバージョンでは、既定値を使用する場合は、任意またはすべてのパラメーターの引数を省略できます。In C# 4C# 4, or later versions, you can omit arguments for any or all of the parameters if you want to use their default values. Visual C# 2008Visual C# 2008 以前のバージョンでは、各パラメーターの引数を提供する必要があり、パラメーターが参照パラメーターであるため、引数は変数である必要があります。In Visual C# 2008Visual C# 2008 and earlier versions, an argument must be provided for each parameter, and the argument must be a variable because the parameters are reference parameters.

    PasteSpecial メソッドは、クリップボードの内容を挿入します。The PasteSpecial method inserts the contents of the Clipboard. このメソッドには 7 つの参照パラメーターがあり、これらはすべてオプションです。The method has seven reference parameters, all of which are optional. 次のコードでは、クリップボードの内容のソースへのリンクを作成する Link とリンクをアイコンとして表示する DisplayAsIcon の 2 つの参照パラメーターの引数を指定します。The following code specifies arguments for two of them: Link, to create a link to the source of the Clipboard contents, and DisplayAsIcon, to display the link as an icon. C# 4C# 4 では、これら 2 つに名前付き引数を使用して、その他を省略できます。In C# 4C# 4, you can use named arguments for those two and omit the others. これらは参照パラメーターですが、ref キーワードを使用したり、引数として渡す変数を作成したりする必要はありません。Although these are reference parameters, you do not have to use the ref keyword, or to create variables to send in as arguments. 値は直接渡すことができます。You can send the values directly. Visual C# 2008Visual C# 2008 以前のバージョンでは、各参照パラメーターに変数引数を渡す必要があります。In Visual C# 2008Visual C# 2008 and earlier versions, you must send a variable argument for each reference parameter.

    static void CreateIconInWordDoc()
    {
        var wordApp = new Word.Application();
        wordApp.Visible = true;
    
        // The Add method has four reference parameters, all of which are 
        // optional. Visual C# allows you to omit arguments for them if
        // the default values are what you want.
        wordApp.Documents.Add();
    
        // PasteSpecial has seven reference parameters, all of which are 
        // optional. This example uses named arguments to specify values 
        // for two of the parameters. Although these are reference 
        // parameters, you do not need to use the ref keyword, or to create 
        // variables to send in as arguments. You can send the values directly.
        wordApp.Selection.PasteSpecial( Link: true, DisplayAsIcon: true);
    }
    

    Visual C# 2008Visual C# 2008 以前のバージョンの言語では、次のより複雑なコードが必要です。In Visual C# 2008Visual C# 2008 or earlier versions of the language, the following more complex code is required.

    static void CreateIconInWordDoc2008()
    {
        var wordApp = new Word.Application();
        wordApp.Visible = true;
    
        // The Add method has four parameters, all of which are optional. 
        // In Visual C# 2008 and earlier versions, an argument has to be sent 
        // for every parameter. Because the parameters are reference  
        // parameters of type object, you have to create an object variable
        // for the arguments that represents 'no value'. 
    
        object useDefaultValue = Type.Missing;
    
        wordApp.Documents.Add(ref useDefaultValue, ref useDefaultValue,
            ref useDefaultValue, ref useDefaultValue);
    
        // PasteSpecial has seven reference parameters, all of which are
        // optional. In this example, only two of the parameters require
        // specified values, but in Visual C# 2008 an argument must be sent
        // for each parameter. Because the parameters are reference parameters,
        // you have to contruct variables for the arguments.
        object link = true;
        object displayAsIcon = true;
    
        wordApp.Selection.PasteSpecial( ref useDefaultValue,
                                        ref link,
                                        ref useDefaultValue,
                                        ref displayAsIcon,
                                        ref useDefaultValue,
                                        ref useDefaultValue,
                                        ref useDefaultValue);
    }
    
  2. 次のステートメントを Main の末尾に追加します。Add the following statement at the end of Main.

    // Create a Word document that contains an icon that links to
    // the spreadsheet.
    CreateIconInWordDoc();
    
  3. 次のステートメントを DisplayInExcel の末尾に追加します。Add the following statement at the end of DisplayInExcel. Copy メソッドはクリップボードにワークシートを追加します。The Copy method adds the worksheet to the Clipboard.

    // Put the spreadsheet contents on the clipboard. The Copy method has one
    // optional parameter for specifying a destination. Because no argument  
    // is sent, the destination is the Clipboard.
    workSheet.Range["A1:B3"].Copy();
    
  4. Ctrl キーを押しながら、F5 キーを押します。Press CTRL+F5.

    アイコンを含む Word 文書が表示されます。A Word document appears that contains an icon. ワークシートを前面に表示するアイコンをダブルクリックします。Double-click the icon to bring the worksheet to the foreground.

[相互運用機能型の埋め込み] プロパティを設定するにはTo set the Embed Interop Types property

  1. 実行時に、プライマリ相互運用機能アセンブリ (PIA) を必要としない COM 型を呼び出すときに、追加の拡張が可能です。Additional enhancements are possible when you call a COM type that does not require a primary interop assembly (PIA) at run time. PIA への依存関係を削除することによって、バージョンに依存しない、より簡単な展開が実現されます。Removing the dependency on PIAs results in version independence and easier deployment. PIA を使用しないプログラミングのメリットの詳細については、「チュートリアル: マネージド アセンブリからの型の埋め込み」をご覧ください。For more information about the advantages of programming without PIAs, see Walkthrough: Embedding Types from Managed Assemblies.

    また、dynamic ではなく Object 型を使用して、COM メソッドに必要とされ、COM メソッドによって返される型を簡単に表現できるため、プログラミングがより簡単になります。In addition, programming is easier because the types that are required and returned by COM methods can be represented by using the type dynamic instead of Object. 型が dynamic の変数は、明示的なキャストが不要になる実行時まで評価されません。Variables that have type dynamic are not evaluated until run time, which eliminates the need for explicit casting. 詳細については、「dynamic 型の使用」を参照してください。For more information, see Using Type dynamic.

    C# 4C# 4 の既定の動作では、PIA を使用せずに型情報を埋め込みます。In C# 4C# 4, embedding type information instead of using PIAs is default behavior. この既定のため、前の例のいくつかは、明示的なキャストが必要ないために簡素化されます。Because of that default, several of the previous examples are simplified because explicit casting is not required. たとえば、worksheet での DisplayInExcel の宣言は、Excel._Worksheet workSheet = excelApp.ActiveSheet ではなく Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet と記述されます。For example, the declaration of worksheet in DisplayInExcel is written as Excel._Worksheet workSheet = excelApp.ActiveSheet rather than Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet. 同じメソッドの AutoFit への呼び出しでも、既定値を使用せずに明示的なキャストが必要になります。これは、ExcelApp.Columns[1]Object を返し、AutoFit が Excel のメソッドであるためです。The calls to AutoFit in the same method also would require explicit casting without the default, because ExcelApp.Columns[1] returns an Object, and AutoFit is an Excel method. 次のコードはキャストを示しています。The following code shows the casting.

    ((Excel.Range)workSheet.Columns[1]).AutoFit();
    ((Excel.Range)workSheet.Columns[2]).AutoFit();
    
  2. 既定値を変更し、型情報を埋め込むのではなく PIA を使用するには、ソリューション エクスプ ローラー[参照設定] ノードを展開し、[Microsoft.Office.Interop.Excel] または [Microsoft.Office.Interop.Word] を選択します。To change the default and use PIAs instead of embedding type information, expand the References node in Solution Explorer and then select Microsoft.Office.Interop.Excel or Microsoft.Office.Interop.Word.

  3. [プロパティ] ウィンドウが表示されない場合は、F4 キーを押します。If you cannot see the Properties window, press F4.

  4. プロパティの一覧で [相互運用機能型の埋め込み] を見つけて、値を [False] に変更します。Find Embed Interop Types in the list of properties, and change its value to False. 同様に、コマンド プロンプトで /link の代わりに /reference コンパイラ オプションを使用してコンパイルすることができます。Equivalently, you can compile by using the /reference compiler option instead of /link at a command prompt.

テーブルに追加の書式設定を追加するにはTo add additional formatting to the table

  1. AutoFitDisplayInExcel への 2 つの呼び出しを次のステートメントに置き換えます。Replace the two calls to AutoFit in DisplayInExcel with the following statement.

    // Call to AutoFormat in Visual C# 2010.
    workSheet.Range["A1", "B3"].AutoFormat(
        Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2);
    

    AutoFormat メソッドには、7 つの値パラメーターがあり、これらはすべて省略可能です。The AutoFormat method has seven value parameters, all of which are optional. 名前付き引数と省略可能な引数を使用すると、一部またはすべてのパラメーターに引数を指定することができます。引数を指定しないこともできます。Named and optional arguments enable you to provide arguments for none, some, or all of them. 前のステートメントでは、1 つのパラメーター Format にのみ引数が指定されています。In the previous statement, an argument is supplied for only one of the parameters, Format. Format はパラメーター リストの最初のパラメーターであるため、パラメーター名を指定する必要はありません。Because Format is the first parameter in the parameter list, you do not have to provide the parameter name. ただし、次のコードに示すように、パラメーター名が含まれている場合、ステートメントがわかりやすい場合があります。However, the statement might be easier to understand if the parameter name is included, as is shown in the following code.

    // Call to AutoFormat in Visual C# 2010.
    workSheet.Range["A1", "B3"].AutoFormat(Format:
        Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2);
    
  2. Ctrl + F5 キーを押して結果を表示します。Press CTRL+F5 to see the result. その他の形式は、XlRangeAutoFormat 列挙型のページに掲載されています。Other formats are listed in the XlRangeAutoFormat enumeration.

  3. 手順 1 のステートメントと Visual C# 2008Visual C# 2008 以前のバージョンで必要な引数が示されている次のコードを比較します。Compare the statement in step 1 with the following code, which shows the arguments that are required in Visual C# 2008Visual C# 2008 or earlier versions.

    // The AutoFormat method has seven optional value parameters. The
    // following call specifies a value for the first parameter, and uses 
    // the default values for the other six. 
    
    // Call to AutoFormat in Visual C# 2008. This code is not part of the
    // current solution.
    excelApp.get_Range("A1", "B4").AutoFormat(Excel.XlRangeAutoFormat.xlRangeAutoFormatTable3, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing);
    

Example

コード例全体を次に示します。The following code shows the complete example.

using System;
using System.Collections.Generic;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;


namespace OfficeProgramminWalkthruComplete
{
    class Walkthrough
    {
        static void Main(string[] args)
        {
            // Create a list of accounts.
            var bankAccounts = new List<Account> 
            {
                new Account { 
                              ID = 345678,
                              Balance = 541.27
                            },
                new Account {
                              ID = 1230221,
                              Balance = -127.44
                            }
            };

            // Display the list in an Excel spreadsheet.
            DisplayInExcel(bankAccounts);

            // Create a Word document that contains an icon that links to
            // the spreadsheet.
            CreateIconInWordDoc();
        }

        static void DisplayInExcel(IEnumerable<Account> accounts)
        {
            var excelApp = new Excel.Application();
            // Make the object visible.
            excelApp.Visible = true;

            // Create a new, empty workbook and add it to the collection returned 
            // by property Workbooks. The new workbook becomes the active workbook.
            // Add has an optional parameter for specifying a praticular template. 
            // Because no argument is sent in this example, Add creates a new workbook. 
            excelApp.Workbooks.Add();

            // This example uses a single workSheet. 
            Excel._Worksheet workSheet = excelApp.ActiveSheet;

            // Earlier versions of C# require explicit casting.
            //Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet;

            // Establish column headings in cells A1 and B1.
            workSheet.Cells[1, "A"] = "ID Number";
            workSheet.Cells[1, "B"] = "Current Balance";

            var row = 1;
            foreach (var acct in accounts)
            {
                row++;
                workSheet.Cells[row, "A"] = acct.ID;
                workSheet.Cells[row, "B"] = acct.Balance;
            }

            workSheet.Columns[1].AutoFit();
            workSheet.Columns[2].AutoFit();

            // Call to AutoFormat in Visual C#. This statement replaces the 
            // two calls to AutoFit.
            workSheet.Range["A1", "B3"].AutoFormat(
                Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2);

            // Put the spreadsheet contents on the clipboard. The Copy method has one
            // optional parameter for specifying a destination. Because no argument  
            // is sent, the destination is the Clipboard.
            workSheet.Range["A1:B3"].Copy();
        }

        static void CreateIconInWordDoc()
        {
            var wordApp = new Word.Application();
            wordApp.Visible = true;

            // The Add method has four reference parameters, all of which are 
            // optional. Visual C# allows you to omit arguments for them if
            // the default values are what you want.
            wordApp.Documents.Add();

            // PasteSpecial has seven reference parameters, all of which are 
            // optional. This example uses named arguments to specify values 
            // for two of the parameters. Although these are reference 
            // parameters, you do not need to use the ref keyword, or to create 
            // variables to send in as arguments. You can send the values directly.
            wordApp.Selection.PasteSpecial(Link: true, DisplayAsIcon: true);
        }
    }

    public class Account
    {
        public int ID { get; set; }
        public double Balance { get; set; }
    }
}

関連項目See also