다음을 통해 공유


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

업데이트: 2007년 11월

Microsoft Office 응용 프로그램의 개체 모델에는 선택적 매개 변수를 사용하는 많은 메서드가 있습니다. 선택적 매개 변수는 Visual Basic을 사용하여 메서드를 호출할 때만 선택적입니다. C#을 사용하여 Microsoft Office 응용 프로그램에 대한 프로그래밍 작업을 하는 경우에는 모든 매개 변수에 값을 전달해야 합니다.

Visual Basic과 Visual C#의 선택적 매개 변수 차이점

Visual Basic으로 Microsoft Office 응용 프로그램에 대한 프로그래밍 작업을 할 때에는 선택적 매개 변수에 대해 값을 전달할 필요는 없습니다. 값을 전달하지 않은 매개 변수에 대해서는 자동으로 기본값이 사용됩니다. 그러나 C#에서는 선택적 매개 변수가 지원되지 않으므로 메서드의 모든 매개 변수에 대해 값을 전달해야 합니다.

Visual Studio Tools for Office 프로젝트에는 missing이라는 전역 변수가 있으며, 생성된 코드에서 이 변수는 Type.Missing 값으로 할당됩니다. 이 전역 변수를 전달하여 Object와 같은 참조 형식을 받아들이는 각 선택적 매개 변수의 기본값을 사용하도록 할 수 있습니다. 값 형식을 받아들이는 선택적 매개 변수의 경우에는 실제 기본값을 전달해야 합니다. 자세한 내용은 Visual C#에서 선택적 매개 변수에 값 형식 전달을 참조하십시오.

Excel의 예제

Worksheet.CheckSpelling 메서드에서는 참조 형식을 받아들이는 다음과 같은 선택 매개 변수를 사용합니다.

  • CustomDictionary. 기본 사전에서 단어를 찾지 못한 경우 사용자 지정 사전을 사용할지 여부를 나타냅니다.

  • IgnoreUppercase. 대문자를 무시할지 여부를 나타냅니다.

  • AlwaysSuggest. 잘못된 철자가 발견될 경우 Excel에서 제안을 위한 다른 철자 목록을 표시할지 여부를 나타냅니다.

  • SpellLang. 사용 중인 사전의 언어를 나타냅니다.

다음 코드 예제와 같이 이러한 매개 변수의 기본값을 사용할 수 있습니다.

Globals.Sheet1.CheckSpelling()
Globals.Sheet1.CheckSpelling(missing, missing, missing, missing);

Word의 예제

일반적으로 C#에서 Microsoft Office Word 메서드를 호출할 때는 모든 선택적 매개 변수를 참조로 전달해야 하므로 다른 Office 응용 프로그램의 메서드를 호출할 때보다 복잡합니다.

예를 들어, Document.CheckSpelling 메서드에서는 Word 문서의 맞춤법 검사와 관련된 다음과 같은 선택적 매개 변수를 사용합니다.

  • CustomDictionary. 사용자 지정 사전의 파일 이름입니다.

  • IgnoreUppercase. 대문자를 무시할지 여부를 나타냅니다.

  • AlwaysSuggest. 잘못된 철자가 발견될 경우 Word에서 제안을 위한 다른 철자 목록을 표시할지 여부를 나타냅니다.

  • CustomDictionary2 – CustomDictionary10. 추가 사용자 지정 사전의 파일 이름입니다. 9개의 추가 사전을 지정할 수 있습니다.

다음 코드 예제와 같이 이러한 매개 변수의 기본값을 사용할 수 있습니다.

Me.CheckSpelling()
this.CheckSpelling(
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

Visual C#에서 선택적 매개 변수에 값 형식 전달

Visual C#에서 missing 전역 변수는 참조 형식을 받아들이는 선택적 매개 변수에만 전달할 수 있습니다. 값 형식을 받아들이는 선택적 매개 변수의 경우에는 실제 기본값을 확인하고 이 전역 변수 대신 해당 값을 전달해야 합니다.

예를 들어, NamedRange 클래스의 Sort 메서드에서는 Microsoft.Office.Interop.Excel.XlSortOrder를 비롯한 많은 열거형 값을 매개 변수로 받아들입니다. 이 매개 변수는 값 형식이므로 missing 전역 변수를 전달하는 대신 XlSortOrder 값 중 하나를 지정해야 합니다.

값 및 참조 형식 매개 변수에 대한 자세한 내용은 값 또는 참조로 인수 전달(Visual Basic의 경우) 및 매개 변수 전달(C# 프로그래밍 가이드)을 참조하십시오.

참고 항목

개념

Office 솔루션 개발

Visual Studio에서 관리 코드 및 Office 프로그래밍

Office 솔루션에서 코드 작성