Office ソリューションの省略可能なパラメーター
Microsoft Office アプリケーションのオブジェクト モデルに含まれるメソッドの多くは、省略可能なパラメーターを受け取ります。 Visual Studio 2010 で Visual Basic を使用して Office ソリューションを開発する場合は、省略可能なパラメーターに値を渡す必要はありません。省略したパラメーターに対しては自動的に既定値が使用されます。 ほとんどの場合は、Visual C# プロジェクトでも省略可能なパラメーターを省略できます。ただし、ドキュメント レベルの Word プロジェクトでは、ThisDocument クラスの省略可能な ref パラメーターは省略できません。
対象: このトピックの情報は、Microsoft Office 2010 および 2007 Microsoft Office system のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
Visual C# プロジェクトおよび Visual Basic プロジェクトでの省略可能なパラメーターの使用の詳細については、「名前付き引数と省略可能な引数 (C# プログラミング ガイド)」および「省略可能なパラメーター (Visual Basic)」を参照してください。
注意
旧バージョンの Visual Studio では、Visual C# プロジェクトのすべての省略可能なパラメーターに値を渡す必要があります。 便宜上、これらのプロジェクトには missing というグローバル変数が含まれています。パラメーターの既定値を使用する場合に、このグローバル変数を省略可能なパラメーターに渡すことができます。 Visual Studio 2010 の Office の Visual C# プロジェクトにも missing 変数が含まれていますが、通常、Visual Studio 2010 で Office ソリューションを開発する場合は、この変数を使用する必要はありません。ただし、ドキュメント レベルの Word プロジェクトで、省略可能な ref パラメーターを持つ ThisDocument クラスのメソッドを呼び出す場合は例外です。
Excel の例
Worksheet.CheckSpelling メソッドには、多くの省略可能なパラメーターがあります。 次のコード例に示すように、一部のパラメーターの値を指定し、他のパラメーターには既定値を使用することができます。 この例では、Sheet1 というワークシート クラスを持つドキュメント レベルのプロジェクトが必要です。
Globals.Sheet1.CheckSpelling(ignoreUppercase:=True)
// In projects that target the .NET Framework 3.5, change "ignoreUppercase" to "IgnoreUppercase"
// in the following line of code.
Globals.Sheet1.CheckSpelling(ignoreUppercase: true);
Word の例
Find.Execute メソッドには、多くの省略可能なパラメーターがあります。 次のコード例に示すように、一部のパラメーターの値を指定し、他のパラメーターには既定値を使用することができます。
With Me.Application.ActiveDocument.Content
.Find.ClearFormatting()
.Find.Execute(FindText:="blue", ReplaceWith:="red", Replace:=Word.WdReplace.wdReplaceAll)
End With
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 プロジェクトで自動的に定義され、生成されたプロジェクト コード内で Type.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 プロパティから返される Microsoft.Office.Interop.Word.Document オブジェクトの同じメソッドを呼び出し、そのメソッドのパラメーターを省略することができます。 これは、Microsoft.Office.Interop.Word.Document がクラスではなくインターフェイスであるためです。
Globals.ThisDocument.InnerObject.CheckSpelling(IgnoreUppercase: true);
値型のパラメーターと参照型のパラメーターの詳細については、「引数の値渡しと参照渡し (Visual Basic)」(Visual Basic の場合) および「パラメーターの引き渡し (C# プログラミング ガイド)」を参照してください。