Office 方案中的選擇性參數
Microsoft Office 應用程式的物件模型中有許多方法接受選擇性 (Optional) 參數。 如果您使用 Visual Basic 開發 Visual Studio 2010 的 Office 方案,則不需為選擇性參數傳遞值,因為預設值會自動用於每個遺漏的參數。 在大部分情況下,您也可以略過 Visual C# 專案中的選擇性參數。不過,您不能略過文件層級 Word 專案中 ThisDocument 類別的選擇性 ref 參數。
**適用於:**本主題中的資訊適用於 Microsoft Office 2010 和 2007 Microsoft Office system 的文件層級專案和應用程式層級專案。 如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
如需在 Visual C# 和 Visual Basic 專案中使用選擇性參數的詳細資訊,請參閱具名和選擇性引數 (C# 程式設計手冊) 和選擇性參數 (Visual Basic)。
注意事項 |
---|
在舊版 Visual Studio 中,您必須傳遞 Visual C# 專案中每個選擇性參數的值。 為方便使用,這些專案包括的 missing 全域變數可以在您想要使用參數預設值時傳遞給選擇性參數。 Visual Studio 2010 中 Office 的 Visual C# 專案仍然包括 missing 變數,但是您在 Visual Studio 2010 中開發 Office 方案時一般並不需要使用它,除了在您呼叫 Word 文件層級專案中含有 ThisDocument 類別之選擇性 ref 參數的方法時需要。 |
Excel 中的範例
Worksheet.CheckSpelling 方法有許多選擇性參數。 您可以指定某些參數的值,並接受其他參數的預設值 (如下列程式碼範例所示)。 這個範例需要名稱為 Sheet1 之工作表類別的文件層級專案。
Globals.Sheet1.CheckSpelling(ignoreUppercase:=True)
// In projects that target the .NET Framework 3.5, change "ignoreUppercase" to "IgnoreUppercase"
// in the following line of code.
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# 程式設計手冊)。