更新:
2008 年 7 月
適用於
|
|---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。
文件層級專案
Excel 2003
Excel 2007
Word 2003
Word 2007
應用程式層級專案
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。
|
每個主項目和主控制項的行為,都已設計成像是對應的原生 Microsoft Office Word 或 Microsoft Office Excel 物件一樣,同時還具備額外的功能。不過,主項目及主控制項與原生的 Office 物件之間在執行階段行為上還是有一些基本差異。
如需主項目和主控制項的一般資訊,請參閱主項目和主控制項概觀。
當您以程式設計的方式在執行階段建立或開啟文件、活頁簿或工作表,此項目並不是主項目。相反地,這個新物件其實是原生的 Office 物件。例如,如果您在執行階段使用 Add 方法建立新的 Word 文件,這個文件將會是原生 Microsoft.Office.Interop.Word..::.Document 物件,而非 Microsoft.Office.Tools.Word..::.Document 主項目。同樣地,當您在執行階段使用 Add 方法建立新工作表時,您會得到原生 Microsoft.Office.Interop.Excel..::.Worksheet 物件,而非 Microsoft.Office.Tools.Excel..::.Worksheet 主項目。
在文件層級專案中,您無法在執行階段建立主項目。主項目只能在設計階段建立於文件層級專案中。如需詳細資訊,請參閱 Document 主項目、Workbook 主項目 和 Worksheet 主項目。
從 Visual Studio 2008 Service Pack 1 (SP1) 開始,您可以透過 Excel 2007 和 Word 2007 的應用程式層級增益集,於執行階段建立 Microsoft.Office.Tools.Word..::.Document、Microsoft.Office.Tools.Excel..::.Workbook 或 Microsoft.Office.Tools.Excel..::.Worksheet 主項目。如需詳細資訊,請參閱在應用程式層級增益集的執行階段中擴充 Word 文件和 Excel 活頁簿。
您可以以程式設計的方式,在執行階段將主控制項加入至 Microsoft.Office.Tools.Word..::.Document 或 Microsoft.Office.Tools.Excel..::.Worksheet 主項目。如需詳細資訊,請參閱在執行階段將控制項加入至 Office 文件。
您無法將主控制項加入至原生 Microsoft.Office.Interop.Word..::.Document 或 Microsoft.Office.Interop.Excel..::.Worksheet。
了解主項目、主控制項和原生 Office 物件之間的型別差異
在每個主項目和主控制項中,都有基礎的原生 Microsoft Office Word 或 Microsoft Office Excel 物件。您可以使用主項目或主控制項的 InnerObject 屬性來存取基礎物件。不過,卻無法將原生 Office 物件轉型為其對應的主項目或主控制項。如果嘗試將原生 Office 物件轉換為主項目或主控制項的型別,將會擲回 InvalidCastException。
在許多情況下,主項目和主控制項與基礎原生 Office 物件之間的型別差異會影響程式碼。
傳遞主控制項至方法和屬性
在 Word 中,您不能將主控制項傳遞至需要原生 Word 物件做為參數的方法或屬性 (Property)。您必須使用主控制項的 InnerObject 屬性 (Property) 傳回基礎原生 Word 物件。例如,您可以藉由將 Microsoft.Office.Tools.Word..::.Bookmark 主控制項的 InnerObject 屬性 (Property) 傳遞至方法,將 Microsoft.Office.Interop.Word..::.Bookmark 物件傳遞至方法。
在 Excel 中,有兩種情況必須使用主控制項的 InnerObject 屬性 (Property):
下列範例會建立 Microsoft.Office.Tools.Excel..::.NamedRange 控制項,並將其傳遞至 AutoFill 方法。此程式碼會使用已命名範圍的 InnerObject 屬性,傳回 AutoFill 方法所需的基礎 Office Microsoft.Office.Interop.Excel..::.Range。
Me.Range("A1").Value2 = "Monday"
Me.Range("A2").Value2 = "Tuesday"
Dim dayRange As Microsoft.Office.Tools.Excel.NamedRange = _
Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "dayRange")
Me.Range("A1", "A2").AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays)
this.Range["A1", missing].Value2 = "Monday";
this.Range["A2", missing].Value2 = "Tuesday";
Microsoft.Office.Tools.Excel.NamedRange dayRange
= this.Controls.AddNamedRange(this.Range["A1", "A7"], "dayRange");
this.Range["A1", "A2"].AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays);
傳回原生 Office 方法和屬性的型別。
存取主控制項的集合
概念
參考
其他資源
日期
|
記錄
|
原因
|
|---|
2008 年 7 月 |
加入有關使用應用程式層級增益集建立主項目的資訊。
| SP1 功能變更。 |