다음을 통해 공유


Office 솔루션의 선택적 매개 변수

Microsoft Office 애플리케이션의 개체 모델에 있는 메서드 중 상당수가 선택적 매개 변수를 허용합니다. Visual Studio에서 Visual Basic을 사용하여 Office 솔루션을 개발하는 경우 없는 매개 변수마다 기본값이 자동으로 사용되기 때문에 선택적 매개 변수의 값을 전달할 필요가 없습니다. 대부분의 경우 Visual C# 프로젝트에서 선택적 매개 변수를 생략할 수도 있습니다. 그러나 문서 수준 Word 프로젝트에서는 ThisDocument 클래스의 선택적 ref 매개 변수를 생략할 수 없습니다.

적용 대상: 이 항목의 정보는 문서 수준 프로젝트 및 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 클래스에서 선택적 ref 매개 변수를 사용하여 메서드를 호출하는 경우는 예외입니다.

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의 경우) 및 매개 변수 전달(C# 프로그래밍 가이드)을 참조하세요.