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

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

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

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

Note

旧バージョンの Visual Studio では、Visual C# プロジェクトのすべての省略可能なパラメーターに値を渡す必要があります。 便宜上、これらのプロジェクトには missing というグローバル変数が含まれています。パラメーターの既定値を使用する場合に、このグローバル変数を省略可能なパラメーターに渡すことができます。 Visual Studio の Office の Visual C# プロジェクトにも missing 変数が含まれていますが、通常、Visual Studio 2013 で Office ソリューションを開発する場合は、この変数を使用する必要はありません。ただし、ドキュメント レベルの Word プロジェクトで、省略可能な ref パラメーターを持つ 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);

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

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

Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);

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

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

  • 省略可能な ref パラメーターに独自の値を指定するには、指定する値に割り当てられるオブジェクトを宣言し、オブジェクトをパラメーターに渡します。

    次のコード例は、ignoreUppercase パラメーターの値を指定し、他のパラメーターの既定値を受け入れることで 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 クラスのメソッドの省略可能な ref パラメーターを省略するコードを記述するには、別の方法として、InnerObject プロパティから返される Document オブジェクトの同じメソッドを呼び出し、そのメソッドのパラメーターを省略することができます。 これは、Document がクラスではなくインターフェイスであるためです。

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

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