在 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 應用程式為目標

Office 方案中的晚期繫結

參考

反映 (C# 和 Visual Basic)

概念

撰寫 Office 方案中的程式碼

Office 方案中的選擇性參數