次の方法で共有


Office ソリューションの省略可能なパラメーター

Microsoft Office アプリケーションのオブジェクト モデルのメソッドの多くは、省略可能なパラメーターを受け入れます。 Visual Basic を使用して Visual Studio で Office ソリューションを開発する場合、省略可能なパラメーターの値を渡す必要はありません。既定値は、不足している各パラメーターに自動的に使用されるためです。 ほとんどの場合、Visual C# プロジェクトでは省略可能なパラメーターを省略することもできます。 ただし、ドキュメント レベルの Word プロジェクトでは、 クラスの省略可能な ThisDocument パラメーターを省略することはできません。

適用対象: このトピックの情報は、ドキュメント レベルのプロジェクトと VSTO アドイン プロジェクトに適用されます。 「Office アプリケーションとプロジェクトの種類で使用できる機能」を参照してください。

Visual C# および Visual Basic プロジェクトでの省略可能なパラメーターの操作の詳細については、「 名前付きおよび省略可能な引数 (C# プログラミング ガイド) 」および 「省略可能なパラメーター (Visual Basic)」を参照してください。

以前のバージョンの Visual Studio では、Visual C# プロジェクトのすべての省略可能なパラメーターに値を渡す必要があります。 便宜上、これらのプロジェクトには、パラメーターの既定値を使用する場合に省略可能なパラメーターに渡すことができる missing という名前のグローバル変数が含まれています。 Visual Studio の Office 用 Visual C# プロジェクトには引き続きmissing変数が含まれますが、通常は Visual Studio 2013 で Office ソリューションを開発するときに使用する必要はありません。ただし、Word のドキュメント レベルプロジェクトの クラスでオプションの ThisDocument パラメーターを持つメソッドを呼び出す場合を除きます。

Excel の例

CheckSpelling メソッドには、多くの省略可能なパラメーターがあります。 次のコード例に示すように、一部のパラメーターの値を指定し、他のパラメーターの既定値をそのまま使用できます。 この例では、 Sheet1という名前のワークシート クラスを持つドキュメント レベルのプロジェクトが必要です。


Globals.Sheet1.CheckSpelling(ignoreUppercase: true);

Word の例

Execute メソッドには、多くの省略可能なパラメーターがあります。 次のコード例に示すように、一部のパラメーターの値を指定し、他のパラメーターの既定値をそのまま使用できます。

Word.Range documentRange = this.Application.ActiveDocument.Content;
documentRange.Find.ClearFormatting();
documentRange.Find.Execute(FindText: "blue", ReplaceWith: "red", Replace: Word.WdReplace.wdReplaceAll);

Visual C# ドキュメント レベルの Word プロジェクトの ThisDocument クラスでメソッドの省略可能なパラメーターを使用する

Word オブジェクト モデルには、値を受け取るオプションの Object パラメーターを持つ多くのメソッドが含まれています。 ただし、Visual C# ドキュメント レベルの Word プロジェクトで生成された クラスのメソッドの省略可能な ThisDocument パラメーターを省略することはできません。 Visual C# では、クラスではなく、インターフェイスのメソッドに対してのみ、省略可能な ref パラメーターを省略できます。 たとえば、次のコード例ではコンパイルされません。これは、 クラスの CheckSpelling メソッドの省略可能な ThisDocument パラメーターを省略できないためです。

Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);

ThisDocument クラスのメソッドを呼び出すときは、次のガイドラインに従います。

  • 省略可能な ref パラメーターの既定値を受け入れるには、 missing 変数をパラメーターに渡します。 missing変数は Visual C# Office プロジェクトで自動的に定義され、生成されたプロジェクト コードの値Missingに割り当てられます。

  • オプション の ref パラメーターに独自の値を指定するには、指定する値に割り当てられているオブジェクトを宣言し、そのオブジェクトをパラメーターに渡します。

    次のコード例では、CheckSpelling パラメーターの値を指定し、他のパラメーターの既定値を受け入れることで、 メソッドを呼び出す方法を示します。

    object ignoreUppercase = true;
    Globals.ThisDocument.CheckSpelling(
        ref missing, ref ignoreUppercase, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
    

    クラスのメソッドの省略可能な ThisDocument パラメーターを省略するコードを記述する場合は、Document プロパティによって返されるInnerObject オブジェクトに対して同じメソッドを呼び出し、そのメソッドのパラメーターを省略することもできます。 これは、 Document がクラスではなくインターフェイスであるためです。

    Globals.ThisDocument.InnerObject.CheckSpelling(IgnoreUppercase: true);
    

    値パラメーターと参照型パラメーターの詳細については、「 引数を値渡しおよび参照渡しで渡す (Visual Basic の場合) 」および「 パラメーターを渡す (C# プログラミング ガイド)」を参照してください。