在 Office 方案中使用 Visual Basic 或 Visual C# 進行程式設計
您可以使用 Visual Basic 或 Visual C# 建立 Office 方案。 因為 Microsoft Office 物件模型設計成與 Microsoft Visual Basic for Applications (VBA) 搭配使用,所以 Visual Basic 開發人員可以得心應手地使用 Microsoft Office 應用程式所公開的物件。 在 Visual Studio 2010 中,Visual C# 開發人員可以使用的功能大部分都與 Visual Basic 開發人員相同,但是他們有時必須撰寫額外的程式碼以使用 Office 物件模型。 在以 Visual Basic 與 C# 所撰寫的 Managed 程式碼和 Office 開發的基本程式設計功能之間也有一些差異。
**適用於:**本主題中的資訊適用於 Microsoft Office 2010 和 2007 Microsoft Office system 的文件層級專案和應用程式層級專案。 如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
Visual Basic 與 Visual C# 的主要差異
下表顯示在 Office 開發中,Visual Basic 與 Visual C# 之間的主要差異。
功能 |
說明 |
Visual Basic 支援 |
Visual C# 支援 |
---|---|---|---|
選擇性參數 |
在您呼叫方法時,許多 Microsoft Office 方法都會有不必要的參數。 如果未傳遞參數值,則會使用預設值。 |
Visual Basic 支援選擇性參數。 |
在大部分情況下,Visual C# 都支援選擇性參數。 如需詳細資訊,請參閱Office 方案中的選擇性參數。 |
以傳址 (By Reference) 方式傳遞參數 |
大部分 Microsoft Office 主要 Interop 組件中的選擇性參數都可以用傳值 (By Value) 方式傳遞。 然而,在部分主要 Interop 組件中,接受參考型別 (Reference Type) 的選擇性參數都必須以傳址方式傳遞。 如需實值和參考型別參數的詳細資訊,請參閱以傳值和傳址方式傳遞引數 (Visual Basic) (適用於 Visual Basic) 和傳遞參數 (C# 程式設計手冊)。 |
以傳址方式傳遞參數無需額外工作。 Visual Basic 編譯器會在需要時以傳址方式自動傳遞參數。 |
在大部分情況下,Visual C# 編譯器會在需要時以傳址方式自動傳遞參數。 如需詳細資訊,請參閱Office 方案中的選擇性參數。 |
參數型屬性 |
部分屬性會接受參數,方式如同唯讀功能。 |
Visual Basic 支援接受參數的屬性。 |
Visual C# 支援接受參數的屬性。 |
晚期繫結 |
晚期繫結包含判斷物件在執行階段時的屬性,而不是在設計階段將變數轉換為 (Cast) 物件型別。 |
Visual Basic 可以在關閉 Option Strict 時執行晚期繫結。 開啟 Option Strict 時,您必須明確轉換物件,並使用 System.Reflection 命名空間中的型別來存取晚期繫結的成員。 如需詳細資訊,請參閱 Office 方案中的晚期繫結。 |
Visual C# 會在目標為 .NET Framework 4 的專案中執行晚期繫結。 在目標為 .NET Framework 3.5 的專案中,您必須明確轉型物件,並使用 System.Reflection 命名空間中的型別來存取晚期繫結的成員。 如需詳細資訊,請參閱 Office 方案中的晚期繫結。 |
Office 開發與 Managed 程式碼之間的主要差異
下表顯示 Office 開發與以 Visual Basic 或 Visual C# 所撰寫的 Managed 程式碼之間的主要差異。
功能 |
說明 |
Visual Basic 與 Visual C# 支援 |
---|---|---|
陣列索引 |
在 Microsoft Office 應用程式中,集合的陣列下限是以 1 起始。 Visual Basic 和 Visual C# 則使用以 0 起始的陣列。 如需詳細資訊,請參閱 陣列 (C# 程式設計手冊) 和Visual Basic 中的陣列。 |
若要在 Microsoft Office 應用程式的物件模型中,存取集合的第一個項目,請使用索引 1,而不要使用 0。 |
請參閱
工作
HOW TO:透過主要 Interop 組件以 Office 應用程式為目標