Office 方案中的選擇性參數

Microsoft Office 應用程式物件模型中的許多方法,都接受選擇性參數。 如果您使用 Visual Basic 在 Visual Studio 中開發 Office 方案,就不必傳遞選擇性參數的值,因為每個遺漏的參數都會自動使用預設值。 在大部分情況下,您也可以省略 Visual C# 專案中的選擇性參數。 不過,您無法在檔層級 Word 專案中省略 類別的ThisDocument選擇性 ref 參數。

適用於: 本主題中的資訊適用於檔層級專案和 VSTO 載入宏專案。 請參閱 Office 應用程式 lication 和項目類型所提供的功能。

如需在 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選擇性 ref 參數CheckSpelling

Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);

當您呼叫 ThisDocument 類別的方法時,請遵循這些指導方針:

  • 若要接受選擇性 ref 參數的預設值,請將變數傳遞 missing 至 參數。 在 Visual C# Office 專案中,missing 變數會自動定義並指派給產生的專案程式碼中的值 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# 程式設計指南)。