共用方式為


Office 方案中的選擇性參數

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

**適用於:**本主題中的資訊適用於 Office 2013 和 Office 2010 的文件層級專案和應用程式層級專案。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

如需在 Visual C# 和 Visual Basic 專案中使用選擇性參數的詳細資訊,請參閱具名和選擇性引數 (C# 程式設計手冊)選擇性參數 (Visual Basic)

注意事項注意事項

在舊版 Visual Studio 中,您必須傳遞 Visual C# 專案中每個選擇性參數的值。為方便使用,這些專案包括的 missing 全域變數可以在您想要使用參數預設值時傳遞給選擇性參數。Visual Studio 2012 中 Office 的 Visual C# 專案仍然包括 missing 變數,但是您在 Visual Studio 2012 中開發 Office 方案時一般並不需要使用它,除了在您呼叫 Word 文件層級專案中含有 ThisDocument 類別之選擇性 ref 參數的方法時需要。

Excel 中的範例

Worksheet.CheckSpelling 方法有許多選擇性參數。您可以指定某些參數的值,並接受其他參數的預設值 (如下列程式碼範例所示)。這個範例需要名稱為 Sheet1 之工作表類別的文件層級專案。

Globals.Sheet1.CheckSpelling(ignoreUppercase:=True)

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# 程式設計手冊)

請參閱

概念

撰寫 Office 方案中的程式碼

其他資源

開發 Office 方案