了解 Office 方案中的選擇性參數

更新:2007 年 11 月

Microsoft Office 應用程式的物件模型中有許多方法接受選擇性 (Optional) 參數。 只有在您使用 Visual Basic 呼叫方法時,選擇性參數才是選擇性的。當您使用 C# 對 Microsoft Offic 應用程式進行程式設計時,必須為所有參數傳遞值。

Visual Basic 和 Visual C# 中的選擇性參數差異

如果您使用 Visual Basic 對 Microsoft Office 應用程式進行程式設計,則不需為選擇性參數傳遞值,因為預設值會自動用於每個遺漏的參數。但是,C# 不支援選擇性參數,所以您必須針對方法的每個參數各傳遞一個值。

Visual Studio Tools for Office 專案包含一個名為 missing 的全域變數,這個變數在產生的程式碼中會被指派成值 Type.Missing。您可以傳遞這個全域變數,在每個接受參考型別 (Reference Type) (例如 Object) 的選擇性參數都採用預設值。至於接受實值型別 (Value Type) 的選擇性參數,則必須傳遞實際預設值。如需詳細資訊,請參閱在 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 應用程式的方法更複雜,因為您必須以傳址 (By Reference) 方式傳遞所有選擇性參數。

例如,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。由於這是實值型別,因此您必須指定其中一個 XlSortOrder 值,而不是傳遞全域 missing 變數。

如需實值和參考型別參數的詳細資訊,請參閱以傳值和傳址方式傳遞引數 (適用於 Visual Basic) 和傳遞參數 (C# 程式設計手冊)

請參閱

概念

開發 Office 方案

Managed 程式碼與使用 Visual Studio 進行 Office 程式設計

撰寫 Office 方案中的程式碼